require "json"
require "selenium-webdriver"
-$: << File.expand_path('../../', __FILE__)
require 'spec_helper'
Dir[File.dirname(__FILE__) + '/pages/page.rb'].each {|file| require file }
Dir[File.dirname(__FILE__) + '/pages/*.rb'].each {|file| require file }
include RSpec::Expectations
describe "Replace core field" do
+ let(:helper) { TestHelper.new }
before(:all) do
profile = Selenium::WebDriver::Firefox::Profile.new
before(:each) do
@issues_page = @issues_page.open_mypage
+ helper.page = @issues_page
+ helper.base_url = @base_url
+ helper.issue_id = @issue_id
end
after(:each) do
:find => 'initial',
:replace => 'new'
}
- expect( replace(@issue_id, :subject, params) ).to eq new_value
+ expect( helper.replace(:subject, params) ).to eq new_value
new_value = "new<>\'\"&+% text"
params = {
:find => ' ',
:replace => "<>\'\"&+% "
}
- expect( replace(@issue_id, :subject, params) ).to eq new_value
+ expect( helper.replace(:subject, params) ).to eq new_value
params = {
:find => '',
:replace => ''
}
- expect( replace_with_alert(@issue_id, :subject, params) ).to eq new_value
+ expect( helper.replace_with_alert(:subject, params) ).to eq new_value
end
it "subject can replace with private note" do
# initialize
new_value = 'dummy'
- edit(@issue_id, :subject, new_value)
+ helper.edit(:subject, new_value)
# find & replace
new_value = {:value => 'summy',
:replace => 's',
:match_case => false,
:notes => new_value[:notes]}
- expect( replace(@issue_id, :subject, param) ).to eq new_value[:value]
- expect( latest_note(@issue_id, @issues_page.session_cookie) ).to eq new_value
+ expect( helper.replace(:subject, param) ).to eq new_value[:value]
+ expect( helper.latest_note ).to eq new_value
end
- def edit(issue_id, attribute_name, new_value)
- quick_edit = @issues_page.open_context(issue_id)
- menu_selector = quick_edit.menu_selector(attribute_name)
- @issues_page = quick_edit.update_field(issue_id, menu_selector, new_value)
-
- attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
- field_value = get_core_field(issue_id, attribute_name)
-
- if attribute_name == :parent
- field_value["id"]
- else
- field_value
- end
- end
-
- def replace(issue_id, attribute_name, params)
- quick_edit = @issues_page.open_context(issue_id)
- menu_selector = quick_edit.menu_selector(attribute_name)
- @issues_page = quick_edit.replace(issue_id, menu_selector, params, false)
-
- attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
- field_value = get_core_field(issue_id, attribute_name)
-
- if attribute_name == :parent
- field_value["id"]
- else
- field_value
- end
- end
-
- def replace_with_alert(issue_id, attribute_name, params)
- quick_edit = @issues_page.open_context(issue_id)
- menu_selector = quick_edit.menu_selector(attribute_name)
- quick_edit.replace(issue_id, menu_selector, params, true)
- quick_edit.alert.accept
- quick_edit.cancel_quick_edit
-
- attribute_name = :parent if attribute_name.to_sym == :parent_issue_id
- field_value = get_core_field(issue_id, attribute_name)
-
- if attribute_name == :parent
- field_value["id"]
- else
- field_value
- end
- end
-
- def get_core_field(issue_id, attribute_name)
- json = get_json("issues/#{issue_id}.json")
-
- json["issue"][attribute_name.to_s]
- end
-
- def get_json(path)
- uri = URI::parse "#{@base_url}#{path}"
- res = Net::HTTP::get_response(uri)
- JSON.parse(res.body)
- end
-
-
end