OSDN Git Service

refactor test code
[quickedit/quick_edit.git] / test / selenium / pages / quick_edit.rb
1 #coding: utf-8
2
3 module QuickEdit
4   module Test
5     module Pages
6       class QuickEditPage < Page
7         def initialize(driver, base_url, project, before_page)
8           super(driver, base_url, project)
9
10           @before_page = before_page
11
12           find_element :id, "quick_edit_context"
13         end
14
15         def view_menu_item(issue_id, menu_selector)
16           menu_element = find_element(:id, "quick_edit_context")
17           menu_item_element = find_element(:css, menu_selector)
18           action.move_to(menu_element).perform
19
20           find_element(:css, menu_selector)
21         end
22
23         def update_field(issue_id, menu_selector, new_value, desire_alerting = false)
24           menu_element = find_element(:id, "quick_edit_context")
25           menu_item_element = find_element(:css, menu_selector)
26           action.move_to(menu_element).click(menu_item_element).perform
27
28           input_text :id, "new_value", new_value
29
30           buttons = find_elements(:css, "button > span")
31           submit_button = buttons.select {|button| button.text =~ /Submit/}
32           submit_button.first.click
33
34           @before_page.class.open @driver, @base_url, @project unless desire_alerting
35         end
36
37         def clear_field(issue_id, menu_selector)
38           menu_element = find_element(:id, "quick_edit_context")
39           menu_item_element = find_element(:css, menu_selector)
40           action.move_to(menu_element).click(menu_item_element).perform
41
42           find_element(:css, '#quick_edit_input_dialog #clear').click
43
44           buttons = find_elements(:css, "button > span")
45           submit_button = buttons.select {|button| button.text =~ /Submit/}
46           submit_button.first.click
47
48           @before_page.class.open @driver, @base_url, @project
49         end
50
51         def cancel_quick_edit
52           button_elements = find_elements(:css, 'span.ui-button-text')
53           cancel_buttons = button_elements.select do |button_element|
54             button_element.text == 'Cancel'
55           end
56           cancel_button = cancel_buttons.first
57           cancel_button.click
58
59 #          new Selenium::WebDriver::Wait.new().until {
60 #            !cancel_button.displayed?
61 #          }
62         end
63
64         def menu_selector(attribute_name, custom_field_id=nil)
65           if :custom_field == attribute_name.to_sym
66             "#quick_edit_context_custom_field_values_#{custom_field_id} > a"
67           else
68             "#quick_edit_context_#{attribute_name} > a"
69           end
70         end
71       end
72     end
73   end
74 end
75