mediawiki-selenium 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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