mediawiki-selenium 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mediawiki/selenium.rb +1 -6
- data/lib/mediawiki/selenium/env.rb +118 -0
- data/lib/mediawiki/selenium/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8633080c719e8dc425fb90926d0019396ab9b57
|
4
|
+
data.tar.gz: d72ee97d4b6ae0c0e1b348ce0565ea43d2962fd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7d7162a255a83c3735a1214c82283aa7b270053bc40ab2bcf7eb0757f6c31ce68649bd92e39707938d83c552e8940f8d891dee1071e24e8712b2dc579411060
|
7
|
+
data.tar.gz: f0c4fffa439ddd5a4e6c629123c96059420af19456780394f70300858b0566b43246cce4d0f9c9c0aafc145dbdd62edc84d6bd9073d791dc3f61e16a81c5a3e1
|
data/lib/mediawiki/selenium.rb
CHANGED
@@ -0,0 +1,118 @@
|
|
1
|
+
# before all
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'page-object'
|
4
|
+
require 'page-object/page_factory'
|
5
|
+
require 'watir-webdriver'
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
World(PageObject::PageFactory)
|
9
|
+
|
10
|
+
def browser(environment, test_name, language)
|
11
|
+
if environment == :saucelabs
|
12
|
+
sauce_browser(test_name, language)
|
13
|
+
else
|
14
|
+
local_browser(language)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
def environment
|
18
|
+
if ENV['BROWSER_LABEL'] and ENV['SAUCE_ONDEMAND_USERNAME'] and ENV['SAUCE_ONDEMAND_ACCESS_KEY']
|
19
|
+
:saucelabs
|
20
|
+
else
|
21
|
+
:local
|
22
|
+
end
|
23
|
+
end
|
24
|
+
def local_browser(language)
|
25
|
+
if ENV['BROWSER_LABEL']
|
26
|
+
browser_label = ENV['BROWSER_LABEL'].to_sym
|
27
|
+
else
|
28
|
+
browser_label = :firefox
|
29
|
+
end
|
30
|
+
|
31
|
+
if language == 'default'
|
32
|
+
Watir::Browser.new browser_label
|
33
|
+
else
|
34
|
+
if browser_label == :firefox
|
35
|
+
profile = Selenium::WebDriver::Firefox::Profile.new
|
36
|
+
elsif browser_label == :chrome
|
37
|
+
profile = Selenium::WebDriver::Chrome::Profile.new
|
38
|
+
else
|
39
|
+
raise "Changing default language is currently supported only for Firefox and Chrome!"
|
40
|
+
end
|
41
|
+
profile['intl.accept_languages'] = language
|
42
|
+
Watir::Browser.new browser_label, :profile => profile
|
43
|
+
end
|
44
|
+
end
|
45
|
+
def sauce_api(json)
|
46
|
+
%x{curl -H 'Content-Type:text/json' -s -X PUT -d '#{json}' http://#{ENV['SAUCE_ONDEMAND_USERNAME']}:#{ENV['SAUCE_ONDEMAND_ACCESS_KEY']}@saucelabs.com/rest/v1/#{ENV['SAUCE_ONDEMAND_USERNAME']}/jobs/#{$session_id}}
|
47
|
+
end
|
48
|
+
def sauce_browser(test_name, language)
|
49
|
+
config = YAML.load_file('config/config.yml')
|
50
|
+
browser_label = config[ENV['BROWSER_LABEL']]
|
51
|
+
|
52
|
+
if language == 'default'
|
53
|
+
caps = Selenium::WebDriver::Remote::Capabilities.send(browser_label['name'])
|
54
|
+
elsif browser_label['name'] == 'firefox'
|
55
|
+
profile = Selenium::WebDriver::Firefox::Profile.new
|
56
|
+
profile['intl.accept_languages'] = language
|
57
|
+
caps = Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
|
58
|
+
elsif browser_label['name'] == 'chrome'
|
59
|
+
profile = Selenium::WebDriver::Chrome::Profile.new
|
60
|
+
profile['intl.accept_languages'] = language
|
61
|
+
caps = Selenium::WebDriver::Remote::Capabilities.chrome('chrome.profile' => profile.as_json['zip'])
|
62
|
+
end
|
63
|
+
|
64
|
+
caps.platform = browser_label['platform']
|
65
|
+
caps.version = browser_label['version']
|
66
|
+
caps[:name] = "#{test_name} #{ENV['JOB_NAME']}##{ENV['BUILD_NUMBER']}"
|
67
|
+
|
68
|
+
require 'selenium/webdriver/remote/http/persistent' # http_client
|
69
|
+
browser = Watir::Browser.new(
|
70
|
+
:remote,
|
71
|
+
http_client: Selenium::WebDriver::Remote::Http::Persistent.new,
|
72
|
+
url: "http://#{ENV['SAUCE_ONDEMAND_USERNAME']}:#{ENV['SAUCE_ONDEMAND_ACCESS_KEY']}@ondemand.saucelabs.com:80/wd/hub",
|
73
|
+
desired_capabilities: caps)
|
74
|
+
|
75
|
+
browser.wd.file_detector = lambda do |args|
|
76
|
+
# args => ['/path/to/file']
|
77
|
+
str = args.first.to_s
|
78
|
+
str if File.exist?(str)
|
79
|
+
end
|
80
|
+
|
81
|
+
browser
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_name(scenario)
|
85
|
+
if scenario.respond_to? :feature
|
86
|
+
"#{scenario.feature.name}: #{scenario.name}"
|
87
|
+
elsif scenario.respond_to? :scenario_outline
|
88
|
+
"#{scenario.scenario_outline.feature.name}: #{scenario.scenario_outline.name}: #{scenario.name}"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
config = YAML.load_file('config/config.yml')
|
93
|
+
mediawiki_username = config['mediawiki_username']
|
94
|
+
|
95
|
+
Before('@login') do
|
96
|
+
puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV['MEDIAWIKI_PASSWORD']
|
97
|
+
end
|
98
|
+
|
99
|
+
Before('@language') do |scenario|
|
100
|
+
@language = true
|
101
|
+
@scenario = scenario
|
102
|
+
end
|
103
|
+
|
104
|
+
Before do |scenario|
|
105
|
+
@config = config
|
106
|
+
@random_string = Random.new.rand.to_s
|
107
|
+
@mediawiki_username = mediawiki_username
|
108
|
+
@browser = browser(environment, test_name(scenario), 'default') unless @language
|
109
|
+
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
110
|
+
end
|
111
|
+
|
112
|
+
After do |scenario|
|
113
|
+
if environment == :saucelabs
|
114
|
+
sauce_api(%Q{{"passed": #{scenario.passed?}}})
|
115
|
+
sauce_api(%Q{{"public": true}})
|
116
|
+
end
|
117
|
+
@browser.close unless ENV['KEEP_BROWSER_OPEN'] == 'true'
|
118
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiki-selenium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zeljko Filipin
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- README.md
|
55
55
|
- Rakefile
|
56
56
|
- lib/mediawiki/selenium.rb
|
57
|
+
- lib/mediawiki/selenium/env.rb
|
57
58
|
- lib/mediawiki/selenium/version.rb
|
58
59
|
- mediawiki-selenium.gemspec
|
59
60
|
homepage: https://github.com/zeljkofilipin/mediawiki-selenium
|