• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisioncc4235beb74cdf0114b7bae6b9ddd53ca87188cd (tree)
Time2015-07-24 00:03:29
Authorakira saito <akrst@user...>
Commiterakira saito

Log Message

add replace test

Change Summary

Incremental Difference

--- a/app/views/quick_edit_issues/_replace_preview.html.erb
+++ b/app/views/quick_edit_issues/_replace_preview.html.erb
@@ -8,7 +8,7 @@
88 <% @replaced_issues.each do |issue| %>
99 <% cycle_class = cycle(:odd, :even) %>
1010 <tr class="issue">
11- <td class="id <%= cycle_class %>"><%= issue[:id] %></td><td class="<%= cycle_class %>"><%= issue[:old] %></td><td class="<%= cycle_class %>"><%= issue[:new] %></td>
11+ <td class="id <%= cycle_class %>"><%= issue[:id] %></td><td class="old <%= cycle_class %>"><%= issue[:old] %></td><td class="new <%= cycle_class %>"><%= issue[:new] %></td>
1212 </tr>
1313 <% end %>
1414 </tbody>
--- a/test/selenium/pages/quick_edit.rb
+++ b/test/selenium/pages/quick_edit.rb
@@ -48,6 +48,51 @@ module QuickEdit
4848 @before_page.class.open @driver, @base_url, @project
4949 end
5050
51+ def preview_replace(issue_id, menu_selector, find_value, replace_value, desire_alerting = false)
52+ menu_element = find_element(:id, "quick_edit_context")
53+ menu_item_element = find_element(:css, menu_selector)
54+ action.move_to(menu_element).click(menu_item_element).perform
55+
56+ click :id, :replace_switcher
57+
58+ input_text :id, :find_value, find_value
59+ input_text :id, :replace_value, replace_value
60+
61+ buttons = find_elements(:css, "button > span")
62+ submit_button = buttons.select {|button| button.text =~ /Preview/}
63+ submit_button.first.click
64+
65+ @before_page.class.open @driver, @base_url, @project unless desire_alerting
66+ end
67+
68+ def get_replace_preview()
69+ rows = find_elements(:css, "preview_area tbody tr")
70+
71+ previews = rows.map do |row|
72+ id = row.find_element(:class, ".id").text
73+ old = row.find_element(:class, ".old").text
74+ new = row.find_element(:class, ".new").text
75+ { :id => id, :old => old, :new => new }
76+ end
77+ end
78+
79+ def replace(issue_id, menu_selector, find_value, replace_value, desire_alerting = false)
80+ menu_element = find_element(:id, "quick_edit_context")
81+ menu_item_element = find_element(:css, menu_selector)
82+ action.move_to(menu_element).click(menu_item_element).perform
83+
84+ click :id, :replace_switcher
85+
86+ input_text :id, :find_value, find_value
87+ input_text :id, :replace_value, replace_value
88+
89+ buttons = find_elements(:css, "button > span")
90+ submit_button = buttons.select {|button| button.text =~ /Submit/}
91+ submit_button.first.click
92+
93+ @before_page.class.open @driver, @base_url, @project unless desire_alerting
94+ end
95+
5196 def cancel_quick_edit
5297 button_elements = find_elements(:css, 'span.ui-button-text')
5398 cancel_buttons = button_elements.select do |button_element|
--- /dev/null
+++ b/test/selenium/replace_core_field.rb
@@ -0,0 +1,124 @@
1+# coding: utf-8
2+
3+require "json"
4+require "selenium-webdriver"
5+$: << File.expand_path('../../', __FILE__)
6+require 'spec_helper'
7+Dir[File.dirname(__FILE__) + '/pages/page.rb'].each {|file| require file }
8+Dir[File.dirname(__FILE__) + '/pages/*.rb'].each {|file| require file }
9+require "uri"
10+require "net/http"
11+include RSpec::Expectations
12+
13+describe "Replace core field" do
14+
15+ before(:all) 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"
25+
26+ # open issues page
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
30+
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
35+
36+ end
37+
38+ before(:each) do
39+ @issues_page = @issues_page.open_issues
40+ end
41+
42+ after(:each) do
43+ expect(@verification_errors).to match_array []
44+ end
45+
46+ after(:all) do
47+ @driver.quit
48+ end
49+
50+ it "subject can replace" do
51+ new_value = 'initial text'
52+ expect( edit(@issue_id, :subject, new_value) ).to eq new_value
53+
54+ new_value = 'new text'
55+ find = 'initial'
56+ replace = 'new'
57+ expect( replace(@issue_id, :subject, find, replace) ).to eq new_value
58+
59+ find = ''
60+ replace = ''
61+ expect( replace_with_alert(@issue_id, :subject, find, replace) ).to eq new_value
62+ end
63+
64+ def edit(issue_id, attribute_name, new_value)
65+ quick_edit = @issues_page.open_context(issue_id)
66+ menu_selector = quick_edit.menu_selector(attribute_name)
67+ @issues_page = quick_edit.update_field(issue_id, menu_selector, new_value)
68+
69+ attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
70+ field_value = get_core_field(issue_id, attribute_name)
71+
72+ if attribute_name == :parent
73+ field_value["id"]
74+ else
75+ field_value
76+ end
77+ end
78+
79+ def replace(issue_id, attribute_name, find, replace)
80+ quick_edit = @issues_page.open_context(issue_id)
81+ menu_selector = quick_edit.menu_selector(attribute_name)
82+ @issues_page = quick_edit.replace(issue_id, menu_selector, find, replace)
83+
84+ attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
85+ field_value = get_core_field(issue_id, attribute_name)
86+
87+ if attribute_name == :parent
88+ field_value["id"]
89+ else
90+ field_value
91+ end
92+ end
93+
94+ def replace_with_alert(issue_id, attribute_name, find, replace)
95+ quick_edit = @issues_page.open_context(issue_id)
96+ menu_selector = quick_edit.menu_selector(attribute_name)
97+ quick_edit.replace(issue_id, menu_selector, find, replace, true)
98+ quick_edit.alert.accept
99+ quick_edit.cancel_quick_edit
100+
101+ attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
102+ field_value = get_core_field(issue_id, attribute_name)
103+
104+ if attribute_name == :parent
105+ field_value["id"]
106+ else
107+ field_value
108+ end
109+ end
110+
111+ def get_core_field(issue_id, attribute_name)
112+ json = get_json("issues/#{issue_id}.json")
113+
114+ json["issue"][attribute_name.to_s]
115+ end
116+
117+ def get_json(path)
118+ uri = URI::parse "#{@base_url}#{path}"
119+ res = Net::HTTP::get_response(uri)
120+ JSON.parse(res.body)
121+ end
122+
123+
124+end