Dduvall has submitted this change and it was merged. Change subject: Phantomjs environment bindings and specs ......................................................................
Phantomjs environment bindings and specs Change-Id: Ib00b7670368a23126d2d517dcc5139ed1f53b480 --- M Gemfile M lib/mediawiki_selenium/browser_factory/base.rb M lib/mediawiki_selenium/browser_factory/chrome.rb M lib/mediawiki_selenium/browser_factory/firefox.rb M lib/mediawiki_selenium/browser_factory/phantomjs.rb A spec/browser_factory/phantomjs_spec.rb 6 files changed, 52 insertions(+), 17 deletions(-) Approvals: Dduvall: Looks good to me, approved diff --git a/Gemfile b/Gemfile index 6fa2b49..8e0572d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -#ruby=ruby-2.1.1 +#ruby=ruby-2.1.3 #ruby-gemset=mediawiki_selenium source "https://rubygems.org" diff --git a/lib/mediawiki_selenium/browser_factory/base.rb b/lib/mediawiki_selenium/browser_factory/base.rb index 6552984..0f739f6 100644 --- a/lib/mediawiki_selenium/browser_factory/base.rb +++ b/lib/mediawiki_selenium/browser_factory/base.rb @@ -58,18 +58,18 @@ end end - finalize_options(options) + finalize_options!(options) options end protected - def capabilities + def desired_capabilities Selenium::WebDriver::Remote::Capabilities.send(type) end - def finalize_options(options) + def finalize_options!(options) end def http_client @@ -79,7 +79,7 @@ private def default_browser_options - { http_client: http_client, desired_capabilities: capabilities } + { http_client: http_client, desired_capabilities: desired_capabilities } end end end diff --git a/lib/mediawiki_selenium/browser_factory/chrome.rb b/lib/mediawiki_selenium/browser_factory/chrome.rb index c20a022..ac7653a 100644 --- a/lib/mediawiki_selenium/browser_factory/chrome.rb +++ b/lib/mediawiki_selenium/browser_factory/chrome.rb @@ -11,7 +11,7 @@ protected - def capabilities + def desired_capabilities super.tap do |capabilities| capabilities["chromeOptions"] = { "args" => [], @@ -20,10 +20,11 @@ end end - def finalize_options(options) + def finalize_options!(options) options[:desired_capabilities]["chromeOptions"].tap do |options| options["profile"] = options["profile"].as_json["zip"] end + super end end end diff --git a/lib/mediawiki_selenium/browser_factory/firefox.rb b/lib/mediawiki_selenium/browser_factory/firefox.rb index 7cd61c3..b37f6f3 100644 --- a/lib/mediawiki_selenium/browser_factory/firefox.rb +++ b/lib/mediawiki_selenium/browser_factory/firefox.rb @@ -17,7 +17,7 @@ protected - def capabilities + def desired_capabilities super.tap do |capabilities| capabilities[:firefox_profile] = Selenium::WebDriver::Firefox::Profile.new end diff --git a/lib/mediawiki_selenium/browser_factory/phantomjs.rb b/lib/mediawiki_selenium/browser_factory/phantomjs.rb index 5a8309b..7ff1673 100644 --- a/lib/mediawiki_selenium/browser_factory/phantomjs.rb +++ b/lib/mediawiki_selenium/browser_factory/phantomjs.rb @@ -1,16 +1,12 @@ module MediawikiSelenium module BrowserFactory class Phantomjs < Base - def capabilities - super.tap do |capabilities| - bind(:browser_language) do |language| - capabilities["phantomjs.page.customHeaders.Accept-Language"] = language - end + bind(:browser_language) do |language, opts| + opts[:desired_capabilities]["phantomjs.page.customHeaders.Accept-Language"] = language + end - bind(:browser_user_agent) do |user_agent| - capabilities["phantomjs.page.settings.userAgent"] = user_agent - end - end + bind(:browser_user_agent) do |user_agent, opts| + opts[:desired_capabilities]["phantomjs.page.settings.userAgent"] = user_agent end end end diff --git a/spec/browser_factory/phantomjs_spec.rb b/spec/browser_factory/phantomjs_spec.rb new file mode 100644 index 0000000..f524a54 --- /dev/null +++ b/spec/browser_factory/phantomjs_spec.rb @@ -0,0 +1,38 @@ +require "spec_helper" + +module MediawikiSelenium::BrowserFactory + describe Phantomjs do + let(:factory_class) { Phantomjs } + let(:factory) { factory_class.new(:phantomjs) } + + describe ".default_bindings" do + subject { factory_class.default_bindings } + + it { is_expected.to include(:browser_language) } + it { is_expected.not_to include(:browser_timeout) } + it { is_expected.to include(:browser_user_agent) } + end + + describe "#browser_options" do + subject { factory.browser_options(config) } + + context "given a custom browser_language" do + let(:config) { { browser_language: "eo" } } + + it "sets phantomjs.page.customHeaders.Accept-Language to the given language" do + capabilities = subject[:desired_capabilities] + expect(capabilities["phantomjs.page.customHeaders.Accept-Language"]).to eq("eo") + end + end + + context "given a custom browser_user_agent" do + let(:config) { { browser_user_agent: "FooBot" } } + + it "sets phantomjs.page.settings.userAgent to the given string" do + capabilities = subject[:desired_capabilities] + expect(capabilities["phantomjs.page.settings.userAgent"]).to eq("FooBot") + end + end + end + end +end -- To view, visit https://gerrit.wikimedia.org/r/169853 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ib00b7670368a23126d2d517dcc5139ed1f53b480 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/selenium Gerrit-Branch: env-abstraction-layer Gerrit-Owner: Dduvall <[email protected]> Gerrit-Reviewer: Dduvall <[email protected]> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
