From caca76e4dfe644f71989db75ac449e1c925dbe68 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 17:15:07 +0200 Subject: [PATCH 1/6] Convert HAML to ERB --- app/views/admin/reserved_domains/_form.haml | 22 ----------- .../admin/reserved_domains/_form.html.erb | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 22 deletions(-) delete mode 100644 app/views/admin/reserved_domains/_form.haml create mode 100644 app/views/admin/reserved_domains/_form.html.erb diff --git a/app/views/admin/reserved_domains/_form.haml b/app/views/admin/reserved_domains/_form.haml deleted file mode 100644 index ec7492659..000000000 --- a/app/views/admin/reserved_domains/_form.haml +++ /dev/null @@ -1,22 +0,0 @@ -= form_for([:admin, @domain], html: {class: 'form-horizontal'}) do |f| - = render 'shared/full_errors', object: @domain - - .row - .col-md-8 - .panel.panel-default - .panel-heading.clearfix - .pull-left= t(:general) - .panel-body - .form-group - .col-md-4.control-label - = f.label :name - .col-md-7 - = f.text_field(:name, class: 'form-control', disabled: !f.object.new_record?) - .form-group - .col-md-4.control-label - = f.label :password - .col-md-7 - = f.text_field(:password, placeholder: t(:optional), class: 'form-control') - .row - .col-md-8.text-right - = button_tag(t(:save), class: 'btn btn-primary') diff --git a/app/views/admin/reserved_domains/_form.html.erb b/app/views/admin/reserved_domains/_form.html.erb new file mode 100644 index 000000000..802024c70 --- /dev/null +++ b/app/views/admin/reserved_domains/_form.html.erb @@ -0,0 +1,39 @@ +<%= form_for([:admin, @domain], html: { class: 'form-horizontal' }) do |f| %> + <%= render 'shared/full_errors', object: @domain %> + +
+
+
+
+
+ <%= t(:general) %> +
+
+
+
+
+ <%= f.label :name %> +
+
+ <%= f.text_field(:name, class: 'form-control', disabled: !f.object.new_record?) %> +
+
+
+
+ <%= f.label :password %> +
+
+ <%= f.text_field(:password, placeholder: t(:optional), class: 'form-control') %> +
+
+
+
+
+
+ +
+
+ <%= button_tag(t(:save), class: 'btn btn-primary') %> +
+
+<% end %> From 60d23a8b9247968578ee536e2f5693a42bb16b5a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 17:18:25 +0200 Subject: [PATCH 2/6] Improve UI --- app/views/admin/reserved_domains/_form.html.erb | 1 + config/locales/admin/reserved_domains.en.yml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/app/views/admin/reserved_domains/_form.html.erb b/app/views/admin/reserved_domains/_form.html.erb index 802024c70..6dd266566 100644 --- a/app/views/admin/reserved_domains/_form.html.erb +++ b/app/views/admin/reserved_domains/_form.html.erb @@ -24,6 +24,7 @@
<%= f.text_field(:password, placeholder: t(:optional), class: 'form-control') %> + <%= t '.password_hint' %>
diff --git a/config/locales/admin/reserved_domains.en.yml b/config/locales/admin/reserved_domains.en.yml index 7648776a8..cc1a3c4d7 100644 --- a/config/locales/admin/reserved_domains.en.yml +++ b/config/locales/admin/reserved_domains.en.yml @@ -5,3 +5,6 @@ en: title: Reserved domains new_btn: New reserved domain reset_btn: Reset + + form: + password_hint: Generated automatically if left blank From c83155015efc860c82a854e2f3519630ece05b80 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 17:28:40 +0200 Subject: [PATCH 3/6] Add tests --- .../admin_area/reserved_domains/new_test.rb | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/system/admin_area/reserved_domains/new_test.rb diff --git a/test/system/admin_area/reserved_domains/new_test.rb b/test/system/admin_area/reserved_domains/new_test.rb new file mode 100644 index 000000000..05b740b86 --- /dev/null +++ b/test/system/admin_area/reserved_domains/new_test.rb @@ -0,0 +1,41 @@ +require 'test_helper' + +class AdminAreaReservedDomainsNewTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + end + + def test_creates_new_with_requires_attributes + visit admin_reserved_domains_url + click_on 'New reserved domain' + fill_in 'Name', with: 'reserved-new.test' + + assert_difference 'ReservedDomain.count' do + click_link_or_button 'Save' + end + assert_equal 'reserved-new.test', ReservedDomain.last.name + assert_current_path admin_reserved_domains_url + assert_text 'Domain added!' + end + + def test_generates_password_automatically_when_left_blank + visit new_admin_reserved_domain_url + fill_in 'Name', with: 'some.test' + + assert_difference 'ReservedDomain.count' do + click_link_or_button 'Save' + end + assert_not_empty ReservedDomain.last.password + end + + def test_honors_custom_password + visit new_admin_reserved_domain_url + fill_in 'Name', with: 'some.test' + fill_in 'Password', with: 'reserved-123' + + assert_difference 'ReservedDomain.count' do + click_link_or_button 'Save' + end + assert_equal 'reserved-123', ReservedDomain.last.password + end +end From d346d9c87b9b0edc01d106c421524b60a0d36f2c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 17:41:10 +0200 Subject: [PATCH 4/6] Remove unused methods --- app/models/blocked_domain.rb | 4 ---- app/models/reserved_domain.rb | 4 ---- 2 files changed, 8 deletions(-) diff --git a/app/models/blocked_domain.rb b/app/models/blocked_domain.rb index b668e3147..26d5fedd7 100644 --- a/app/models/blocked_domain.rb +++ b/app/models/blocked_domain.rb @@ -10,10 +10,6 @@ class BlockedDomain < ActiveRecord::Base def by_domain name where(name: name) end - - def any_of_domains names - where(name: names) - end end def name= val diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 0db778fdb..0a6bae6bb 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -19,10 +19,6 @@ class ReservedDomain < ActiveRecord::Base where(name: name) end - def any_of_domains names - where(name: names) - end - def new_password_for name record = by_domain(name).first return unless record From 2941328652b67276f76857260fc5fbfce5bf9fc3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 17:56:49 +0200 Subject: [PATCH 5/6] Set `reserved_domains.password` to NOT NULL --- ...32_change_reserved_domains_password_to_not_null.rb | 5 +++++ db/structure.sql | 4 +++- test/fixtures/reserved_domains.yml | 3 +++ test/models/reserved_domain_test.rb | 11 +++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20190102144032_change_reserved_domains_password_to_not_null.rb create mode 100644 test/fixtures/reserved_domains.yml create mode 100644 test/models/reserved_domain_test.rb diff --git a/db/migrate/20190102144032_change_reserved_domains_password_to_not_null.rb b/db/migrate/20190102144032_change_reserved_domains_password_to_not_null.rb new file mode 100644 index 000000000..7fb21b2f1 --- /dev/null +++ b/db/migrate/20190102144032_change_reserved_domains_password_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeReservedDomainsPasswordToNotNull < ActiveRecord::Migration + def change + change_column_null :reserved_domains, :password, false + end +end diff --git a/db/structure.sql b/db/structure.sql index 98d1fbd26..6cca7b361 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2241,7 +2241,7 @@ CREATE TABLE public.reserved_domains ( updator_str character varying, legacy_id integer, name character varying, - password character varying + password character varying NOT NULL ); @@ -4864,3 +4864,5 @@ INSERT INTO schema_migrations (version) VALUES ('20181002090319'); INSERT INTO schema_migrations (version) VALUES ('20181108154921'); +INSERT INTO schema_migrations (version) VALUES ('20190102144032'); + diff --git a/test/fixtures/reserved_domains.yml b/test/fixtures/reserved_domains.yml new file mode 100644 index 000000000..249b7904a --- /dev/null +++ b/test/fixtures/reserved_domains.yml @@ -0,0 +1,3 @@ +one: + name: reserved.test + password: reserved-001 diff --git a/test/models/reserved_domain_test.rb b/test/models/reserved_domain_test.rb new file mode 100644 index 000000000..30736d06d --- /dev/null +++ b/test/models/reserved_domain_test.rb @@ -0,0 +1,11 @@ +require 'test_helper' + +class ReservedDomainTest < ActiveSupport::TestCase + setup do + @reserved_domain = reserved_domains(:one) + end + + def test_fixture_is_valid + assert @reserved_domain.valid? + end +end From c34b0e7ac4a39c931f047de504f58bedbc217e1f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Jan 2019 18:00:04 +0200 Subject: [PATCH 6/6] Reformat --- app/models/reserved_domain.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 0a6bae6bb..3da9f1098 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -6,9 +6,6 @@ class ReservedDomain < ActiveRecord::Base validates :name, domain_name: true, uniqueness: true - - - class << self def pw_for(domain_name) name_in_ascii = SimpleIDN.to_ascii(domain_name) @@ -28,8 +25,6 @@ class ReservedDomain < ActiveRecord::Base end end - - def name= val super SimpleIDN.to_unicode(val) end @@ -49,17 +44,17 @@ class ReservedDomain < ActiveRecord::Base wr.json = @json = generate_json # we need @json to bind to class wr.save end + alias_method :update_whois_record, :generate_data def generate_json h = HashWithIndifferentAccess.new - h[:name] = self.name - h[:status] = ['Reserved'] + h[:name] = self.name + h[:status] = ['Reserved'] h end def remove_data UpdateWhoisRecordJob.enqueue name, 'reserved' end - end