internetee-registry/spec/features/domain_transfer_spec.rb
2014-10-15 14:54:39 +03:00

126 lines
3.7 KiB
Ruby

require 'rails_helper'
feature 'Domain transfer', type: :feature do
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
let(:zone) { Fabricate(:registrar) }
let(:zone_user) { Fabricate(:user, registrar: zone, username: 'zone', admin: false, identity_code: '37810013087') }
let(:elkdata_user) {
Fabricate(:user, registrar: elkdata, username: 'elkdata', admin: false, identity_code: '37810013261')
}
background do
Fabricate(:domain_validation_setting_group)
Fabricate(:domain_general_setting_group)
Fabricate(:dnskeys_setting_group)
Fabricate(:domain, registrar: zone)
end
scenario 'Registrar requests transfer on own domain', js: true do
sign_in zone_user
click_on 'Domains'
click_on 'Domain transfers list'
click_on 'Request domain transfer'
fill_in 'Domain name', with: 'false'
click_on 'Request domain transfer'
expect(page).to have_text('Domain was not found!')
d = Domain.first
fill_in 'Domain name', with: d.name
click_on 'Request domain transfer'
expect(page).to have_text('Password invalid!')
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_text('Domain already belongs to the querying registrar')
end
scenario 'Other registrar requests transfer with 0 wait time' do
sign_in elkdata_user
d = Domain.first
visit client_domains_path
expect(page).to_not have_link(d.name)
visit new_client_domain_transfer_path
fill_in 'Domain name', with: d.name
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_text('Domain transfer approved!')
expect(page).to have_text('serverApproved')
visit client_domains_path
expect(page).to have_link(d.name)
end
scenario 'Other registrar requests transfer with 1 wait time' do
s = Setting.find_by(code: 'transfer_wait_time')
s.value = 1
s.save
sign_in elkdata_user
d = Domain.first
visit client_domains_path
expect(page).to_not have_link(d.name)
visit new_client_domain_transfer_path
fill_in 'Domain name', with: d.name
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_text('Domain transfer requested!')
expect(page).to have_text('pending')
visit new_client_domain_transfer_path
fill_in 'Domain name', with: d.name
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_text('Domain transfer requested!')
expect(page).to have_text('pending')
visit client_domains_path
expect(page).to_not have_link(d.name)
end
scenario 'Domain owner approves request' do
s = Setting.find_by(code: 'transfer_wait_time')
s.value = 1
s.save
d = Domain.first
d.domain_transfers.create(
status: DomainTransfer::PENDING,
transfer_requested_at: Time.zone.now,
transfer_to: elkdata,
transfer_from: zone
)
sign_in elkdata_user
visit new_client_domain_transfer_path
fill_in 'Domain name', with: d.name
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_text('Domain transfer requested!')
expect(page).to_not have_button('Approve')
sign_in zone_user
visit new_client_domain_transfer_path
fill_in 'Domain name', with: d.name
fill_in 'Domain password', with: d.auth_info
click_on 'Request domain transfer'
expect(page).to have_link('Approve')
click_on 'Approve'
expect(page).to have_text('Domain transfer approved!')
expect(page).to have_text('clientApproved')
sign_in elkdata_user
visit client_domains_path
expect(page).to have_link(d.name)
end
end