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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: faa169d90e782ded51e0f784ebbeb9889b736835
4
- data.tar.gz: 8ed248b3c7f550bd6ec3e3da5f398d2aa1d7fbf8
3
+ metadata.gz: a8633080c719e8dc425fb90926d0019396ab9b57
4
+ data.tar.gz: d72ee97d4b6ae0c0e1b348ce0565ea43d2962fd6
5
5
  SHA512:
6
- metadata.gz: 374acab638bfdec051d8fb9c90478dd8bc4c9a46f3a9ed5bfe60efb3b253ccbab1dd9d85410f3255172d973a9819da0edfea984460e047845af18aa122d13191
7
- data.tar.gz: d64c296b65dc15ef86cf825a92d1df94a852f10de39cb848f3b44d00ad4c9599f73bad48c0499b391156105e27cd735d251256529000597d16fb0a84a7618e80
6
+ metadata.gz: c7d7162a255a83c3735a1214c82283aa7b270053bc40ab2bcf7eb0757f6c31ce68649bd92e39707938d83c552e8940f8d891dee1071e24e8712b2dc579411060
7
+ data.tar.gz: f0c4fffa439ddd5a4e6c629123c96059420af19456780394f70300858b0566b43246cce4d0f9c9c0aafc145dbdd62edc84d6bd9073d791dc3f61e16a81c5a3e1
@@ -10,9 +10,4 @@ https://github.com/zeljkofilipin/mediawiki-selenium/blob/master//CREDITS.
10
10
  =end
11
11
 
12
12
  require "mediawiki/selenium/version"
13
-
14
- module Mediawiki
15
- module Selenium
16
- # Your code goes here...
17
- end
18
- end
13
+ require "mediawiki/selenium/env"
@@ -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
@@ -11,6 +11,6 @@ https://github.com/zeljkofilipin/mediawiki-selenium/blob/master//CREDITS.
11
11
 
12
12
  module Mediawiki
13
13
  module Selenium
14
- VERSION = "0.0.3"
14
+ VERSION = "0.0.4"
15
15
  end
16
16
  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.3
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