mediawiki_selenium 1.0.0.pre.1 → 1.0.0.pre.2

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: 6cfb45e7cecfe3d24690b4bc3b0577b523a32f0c
4
- data.tar.gz: da0ddd70c32a9e191f88eb28091295b115a36621
3
+ metadata.gz: 93a8424d3894106aa9575f18912096df4d6bda83
4
+ data.tar.gz: 226dbf63109a48e9ede7a3d2346a7356e697782b
5
5
  SHA512:
6
- metadata.gz: ba624b67027eeec05822cd82927f4849859f07d43302d416965ef8be9f3541b010d332ef19668ec07b87d9d57288cbfa6e4ea61309c04ea5c683abddc999d24e
7
- data.tar.gz: 231504b0c5ae4b35f307b0544c67e56b6c07fb9e4cdc2050a3b089e54db445c80c047ed0f55ad850ce9584e54f3f4ed86720b25ed49d3c9175b44c8d1f533a17
6
+ metadata.gz: 81739dccd7bedc37d73e438b4d58bf301580e5d0d6ae3d4fbb7d7da2221c92e3be1ddfd5d68a2461cbada9d999f078d0f0c65120ebf841708a97b54c3ac1a83a
7
+ data.tar.gz: dbcb5db3ae8620ed8ff25279440ea3f381e0cfd4f7b378c7b5c75069ba15c71a94f0bea73670db0b45f393e4980e358ca6903895fba3fd6de9696ca862886270
data/README.md CHANGED
@@ -44,6 +44,11 @@ Install the gem and its dependencies by running `bundle install`. (If
44
44
  `gem install bundler`, or `sudo gem install bundler` if you're using a
45
45
  system wide Ruby.)
46
46
 
47
+ ## Upgrading
48
+
49
+ Please read the included `UPGRADE.md` for documentation on how to upgrade from
50
+ one major release to another.
51
+
47
52
  ## Getting Started
48
53
 
49
54
  Once the gem is installed, run `mediawiki-selenium-init` in your project's
@@ -0,0 +1,115 @@
1
+ # Upgrading from pre-1.0 releases to 1.0.0 and above
2
+
3
+ ## Update your `Gemfile`
4
+
5
+ First, update the `Gemfile` in your project's root directory to specify the
6
+ new version.
7
+
8
+ gem 'mediawiki_selenium', '~> 1.0.0.pre.2'
9
+
10
+ ## Upgrade gems and dependencies
11
+
12
+ Now run `bundle install` to update your project's gem dependencies and
13
+ `Gemfile.lock`.
14
+
15
+ ## Run the initialization script
16
+
17
+ Version 1.0 now includes an initialization script that can help with the setup
18
+ of new and existing test suites. Run the script in your project's root
19
+ directory via Bundler.
20
+
21
+ bundle exec mediawiki-selenium-init
22
+
23
+ Two important files will be created if they don't already exist. The first is
24
+ an `environments.yml` configuration file that describes the environments in
25
+ which you intend your test suite to run. For details on how it should be
26
+ configured, consult the "Getting Started" section of the `README`.
27
+
28
+ The second file, `tests/browser/features/support/env.rb`, is for bootstrapping
29
+ the Cucumber environment. Since you're working with an existing test suite,
30
+ you may run into a conflict here. Just make sure that your `env.rb` contains
31
+ the following before anything else.
32
+
33
+ require 'mediawiki_selenium'
34
+ require 'mediawiki_selenium/support'
35
+ require 'mediawiki_selenium/step_definitions'
36
+
37
+ ## Convert page object URLs
38
+
39
+ Convert all page object URLs so that they're defined relative to the root of
40
+ any given wiki and no longer rely on the now deprecated `URL` module. In other
41
+ words, change page object classes like the following.
42
+
43
+ class MainPage
44
+ include PageObject
45
+ include URL
46
+
47
+ page_url URL.url('Main_Page')
48
+
49
+ # ...
50
+ end
51
+
52
+ To something like this.
53
+
54
+ class MainPage
55
+ include PageObject
56
+
57
+ page_url 'Main_Page'
58
+
59
+ # ...
60
+ end
61
+
62
+ ## Refactor direct use of `ENV`
63
+
64
+ Change all references to `ENV` to use the appropriate `Environment` method.
65
+
66
+ For example, change things like:
67
+
68
+ Given(/^I am logged in to the primary wiki domain$/) do
69
+ visit(LoginPage).login_with(ENV["MEDIAWIKI_USER"], ENV["MEDIAWIKI_PASSWORD"])
70
+ end
71
+
72
+ To something like:
73
+
74
+ Given(/^I am logged in to the primary wiki domain$/) do
75
+ visit(LoginPage).login_with(user, password)
76
+ end
77
+
78
+ More esoteric configuration that isn't accessible via a method of
79
+ `Environment` can still be read via `Environment#lookup` and `Environment#[]`.
80
+
81
+ Change something like the following:
82
+
83
+ Then(/^the default language should reflect my browser language$/) do
84
+ on(PreferencesPage) do |page|
85
+ expect(page.language_preference).to eq(ENV['BROWSER_LANGUAGE'])
86
+ end
87
+ end
88
+
89
+ To something like:
90
+
91
+ Then(/^the default language should reflect my browser language$/) do
92
+ on(PreferencesPage) do |page|
93
+ expect(page.language_preference).to eq(env[:browser_language])
94
+ # or
95
+ expect(page.language_preference).to eq(lookup(:browser_language))
96
+ end
97
+ end
98
+
99
+ ## Remove direct references to `@browser`
100
+
101
+ All references to `@browser` should use `Environment#browser` instead, since
102
+ the latter will automatically configure and launch the browser the first time
103
+ it's needed.
104
+
105
+ For example:
106
+
107
+ When(/^I am viewing Topic page$/) do
108
+ on(FlowPage).wait_until { @browser.url =~ /Topic/ }
109
+ end
110
+
111
+ Would be changed to:
112
+
113
+ When(/^I am viewing Topic page$/) do
114
+ on(FlowPage).wait_until { browser.url =~ /Topic/ }
115
+ end
@@ -9,6 +9,8 @@ mediawiki_selenium top-level directory and at
9
9
  https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
10
10
  =end
11
11
 
12
- Given(/^I am logged in$/) do
13
- visit(LoginPage).login_with(ENV["MEDIAWIKI_USER"], ENV["MEDIAWIKI_PASSWORD"])
12
+ Given(/^I am logged in(?: as (\w+))$/) do |user|
13
+ as_user(user) do |user, password|
14
+ visit(LoginPage).login_with(user, password)
15
+ end
14
16
  end
@@ -10,7 +10,7 @@ https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
10
10
  =end
11
11
 
12
12
  Then(/^page has no ResourceLoader errors$/) do
13
- @browser.execute_script("
13
+ result = browser.execute_script(<<-end)
14
14
  return (function() {
15
15
  // Returns a string listing problem modules,
16
16
  // or empty string if all OK (or not a MediaWiki page).
@@ -41,5 +41,7 @@ return (function() {
41
41
  }
42
42
  return ret;
43
43
  }) ();
44
- ").should == ""
44
+ end
45
+
46
+ expect(result).to eq('')
45
47
  end
@@ -4,9 +4,9 @@ When(/^upload bogus file (.+)$/) do |file_name|
4
4
  path = "#{Dir.tmpdir}/#{file_name}"
5
5
 
6
6
  system("touch #{path}")
7
- if @browser.driver.browser == :chrome
8
- @browser.execute_script "document.getElementsByName('file')[0].removeAttribute('class');"
9
- @browser.execute_script "document.getElementsByName('file')[0].removeAttribute('style');"
7
+ if browser.driver.browser == :chrome
8
+ browser.execute_script "document.getElementsByName('file')[0].removeAttribute('class');"
9
+ browser.execute_script "document.getElementsByName('file')[0].removeAttribute('style');"
10
10
  end
11
11
 
12
12
  on(UploadPage).select_file = path
@@ -20,9 +20,9 @@ When(/^upload file (.+)$/) do |file_name|
20
20
  require "chunky_png"
21
21
  ChunkyPNG::Image.new(Random.new.rand(255), Random.new.rand(255), Random.new.rand(255)).save path
22
22
 
23
- if @browser.driver.browser == :chrome
24
- @browser.execute_script "document.getElementsByName('file')[0].removeAttribute('class');"
25
- @browser.execute_script "document.getElementsByName('file')[0].removeAttribute('style');"
23
+ if browser.driver.browser == :chrome
24
+ browser.execute_script "document.getElementsByName('file')[0].removeAttribute('class');"
25
+ browser.execute_script "document.getElementsByName('file')[0].removeAttribute('style');"
26
26
  end
27
27
 
28
28
  on(UploadPage).select_file = path
@@ -1,3 +1,4 @@
1
1
  require "mediawiki_selenium/support/env"
2
2
  require "mediawiki_selenium/support/hooks"
3
+ require "mediawiki_selenium/support/pages"
3
4
  require "mediawiki_selenium/support/sauce"
@@ -20,7 +20,6 @@ class LoginPage
20
20
  def login_with(username, password, wait_for_logout_element = true)
21
21
  self.username_element.when_present.send_keys(username)
22
22
  self.password_element.when_present.send_keys(password)
23
- login_element.fire_event("onfocus")
24
23
  login_element.when_present.click
25
24
  logout_element.when_present(10) if wait_for_logout_element
26
25
  end
@@ -10,5 +10,5 @@ https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
10
10
  =end
11
11
 
12
12
  module MediawikiSelenium
13
- VERSION = "1.0.0.pre.1"
13
+ VERSION = "1.0.0.pre.2"
14
14
  end
@@ -1,6 +1,4 @@
1
1
  require "mediawiki_selenium"
2
2
 
3
- require "mediawiki_selenium/support/env"
4
- require "mediawiki_selenium/support/hooks"
5
- require "mediawiki_selenium/support/pages"
3
+ require "mediawiki_selenium/support"
6
4
  require "mediawiki_selenium/step_definitions"
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: 1.0.0.pre.1
4
+ version: 1.0.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris McMahon
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2015-01-17 00:00:00.000000000 Z
16
+ date: 2015-02-18 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: cucumber
@@ -334,6 +334,7 @@ files:
334
334
  - Gemfile
335
335
  - LICENSE
336
336
  - README.md
337
+ - UPGRADE.md
337
338
  - bin/mediawiki-selenium-init
338
339
  - lib/mediawiki_selenium.rb
339
340
  - lib/mediawiki_selenium/browser_factory.rb