4 require "selenium-webdriver"
5 $: << File.expand_path('../../', __FILE__)
7 Dir[File.dirname(__FILE__) + '/pages/page.rb'].each {|file| require file }
8 Dir[File.dirname(__FILE__) + '/pages/*.rb'].each {|file| require file }
11 include RSpec::Expectations
13 describe "Clear core field" do
16 profile = Selenium::WebDriver::Firefox::Profile.new
17 @driver = Selenium::WebDriver.for :firefox, :profile => profile
18 @driver.manage.window.maximize
19 @base_url = "http://localhost:3000/"
20 @driver.manage.timeouts.implicit_wait = 10
21 @verification_errors = []
22 @default_project = "test"
23 @default_user = "admin"
24 @default_password = "dummy"
27 start_page = QuickEdit::Test::Pages::StartPage.new(@driver, @base_url, @default_project)
28 first_page = start_page.login @default_user, @default_password
29 @issues_page = first_page.open_issues
31 # create issue for test
32 issue_new_page = @issues_page.open_new_page()
33 issue_show_page = issue_new_page.create(:bug, 'first subject')
34 @issue_id = issue_show_page.id
39 @issues_page = @issues_page.open_issues
43 expect(@verification_errors).to match_array []
50 it "start_date can clear" do
51 new_value = '1900-01-01'
52 expect( edit(@issue_id, :start_date, new_value) ).to eq new_value
54 expect( clear(@issue_id, :start_date) ).to eq nil
57 it "due_date can clear" do
58 new_value = '2000-01-01'
59 expect( edit(@issue_id, :due_date, new_value) ).to eq new_value
61 expect( clear(@issue_id, :due_date) ).to eq nil
64 it "estimated_hours can clear" do
66 expect( edit(@issue_id, :estimated_hours, new_value).to_f ).to eq new_value.to_f
68 expect( clear(@issue_id, :estimated_hours) ).to eq nil
71 it "parent_issue_id can clear" do
72 issue_ids = @issues_page.issue_ids_on_page
73 issue_new_page = @issues_page.open_new_page()
74 issue_show_page = issue_new_page.create(:bug, 'first subject')
75 new_issue_id = issue_show_page.id
76 @issues_page = issue_show_page.open_issues
78 new_value = @issue_id.to_s
79 expect( edit(new_issue_id, :parent_issue_id, new_value) ).to eq new_value.to_i
81 expect( clear(new_issue_id, :parent_issue_id) ).to eq nil
84 def edit(issue_id, attribute_name, new_value)
85 @issues_page.quick_edit_for_core_field issue_id, attribute_name, new_value
87 attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
88 field_value = get_core_field(issue_id, attribute_name)
90 if attribute_name == :parent
97 def clear(issue_id, attribute_name)
98 quick_edit = @issues_page.open_context(issue_id)
99 menu_selector = quick_edit.menu_selector(attribute_name)
100 @issues_page = quick_edit.clear_field(issue_id, menu_selector)
102 attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
103 field_value = get_core_field(issue_id, attribute_name)
106 def get_core_field(issue_id, attribute_name)
107 json = get_json("issues/#{issue_id}.json")
109 json["issue"][attribute_name.to_s]
113 uri = URI::parse "#{@base_url}#{path}"
114 res = Net::HTTP::get_response(uri)