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
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 @accept_next_alert = true
21 @driver.manage.timeouts.implicit_wait = 10
22 @verification_errors = []
23 @default_project = "test"
24 @default_user = "admin"
25 @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
34 expect(@verification_errors).to match_array []
37 it "subject can edit" do
39 expect( edit(@issue_id, :subject, new_value) ).to eq new_value
41 new_value = 'subject: new_value'
42 expect( edit(@issue_id, :subject, new_value) ).to eq new_value
44 expect( edit_with_alert(@issue_id, :subject, "") ).to eq new_value
47 it "start_date can edit" do
48 new_value = '1900-01-01'
49 expect( edit(@issue_id, :start_date, new_value) ).to eq new_value
51 new_value = '1900-01-02'
52 expect( edit(@issue_id, :start_date, new_value) ).to eq new_value
54 expect( edit_with_alert(@issue_id, :start_date, "") ).to eq new_value
57 it "due_date can edit" do
58 new_value = '2000-01-01'
59 expect( edit(@issue_id, :due_date, new_value) ).to eq new_value
61 new_value = '2000-01-02'
62 expect( edit(@issue_id, :due_date, new_value) ).to eq new_value
64 expect( edit_with_alert(@issue_id, :due_date, "") ).to eq new_value
67 it "description can edit" do
69 expect( edit(@issue_id, :description, new_value) ).to eq new_value
71 new_value = 'description: new_value'
72 expect( edit(@issue_id, :description, new_value) ).to eq new_value
74 expect( edit_with_alert(@issue_id, :description, "") ).to eq new_value
77 def edit(issue_id, attribute_name, new_value)
78 @issues_page.quick_edit_for_core_field issue_id, attribute_name, new_value
80 field_value = get_core_field(issue_id, attribute_name)
84 def edit_with_alert(issue_id, attribute_name, new_value)
85 @issues_page.quick_edit_for_core_field issue_id, attribute_name, new_value, true
86 @issues_page.alert.accept
88 field_value = get_core_field(issue_id, attribute_name)
92 def edit_custom_field(issue_id, custom_field_name, new_value)
93 cf = get_custom_field(issue_id, custom_field_name)
96 @issues_page.quick_edit_for_custom_field issue_id, cf_id, new_value
98 cf = get_custom_field(issue_id, custom_field_name)
102 def get_core_field(issue_id, attribute_name)
103 json = get_json("issues/#{issue_id}.json")
105 json["issue"][attribute_name.to_s]
108 def get_custom_field(issue_id, custom_field_name)
109 cf_hash_list = get_custom_fields(issue_id)
111 cf_hash = cf_hash_list.select do |cf_hash|
112 cf_hash["name"] == custom_field_name.to_s
118 def get_custom_fields(issue_id)
119 json = get_json("issues/#{issue_id}.json")
121 json["issue"]["custom_fields"]
125 uri = URI::parse "#{@base_url}#{path}"
126 res = Net::HTTP::get_response(uri)