watirsplash 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ === Version 2.2.0 / 2011-09-10
2
+
3
+ * watir-webdriver/firefox is now the default framework under Linux and OS X
4
+ * Page objects will reuse WatirSplash::Browser.current if it exists
5
+ * added Page#redirect_to for redirecting to another Page object
6
+ * require spec_helper relatively from working directory
7
+
1
8
  === Version 2.1.1 / 2011-08-18
2
9
 
3
10
  * bumped Watir dependency to 2.0.1
data/README.rdoc CHANGED
@@ -62,7 +62,7 @@ testing right away!
62
62
  def search_button
63
63
  modify button(:name => "go"),
64
64
  # clicking the search button results a page transition to "results" page
65
- :click => lambda {Results.new @browser}
65
+ :click => lambda {redirect_to Results}
66
66
  end
67
67
  end
68
68
  end
@@ -119,15 +119,15 @@ testing right away!
119
119
  == SUPPORTED PLATFORMS & BROWSERS
120
120
 
121
121
  WatirSplash supports different frameworks/browsers on different operating systems:
122
- * Linux & OS X - firewatir, watir-webdriver/chrome and watir-webdriver/firefox
123
- * Windows - firewatir, watir, watir-webdriver/chrome, watir-webdriver/ie, watir-webdriver/firefox
122
+ * Linux & OS X - watir-webdriver/firefox, watir-webdriver/chrome and firewatir
123
+ * Windows - watir, watir-webdriver/firefox, watir-webdriver/chrome, watir-webdriver/ie and firewatir
124
124
 
125
125
  Each framework drives a specific browser:
126
- * FireWatir - Firefox
127
126
  * Watir - IE
128
127
  * Watir-WebDriver - Chrome, IE and Firefox
128
+ * FireWatir - Firefox
129
129
 
130
- It is possible to specify what framework to use in config.rb file:
130
+ It is possible to specify what framework to use in spec_helper.rb file:
131
131
  WatirSplash::Util.framework = "watir-webdriver/firefox"
132
132
 
133
133
  It is also possible to specify used framework by using environment variable WATIRSPLASH_FRAMEWORK.
@@ -1,5 +1,5 @@
1
1
  --drb
2
- --require spec/spec_helper
2
+ --require ./spec/spec_helper
3
3
  --color
4
4
  --format documentation
5
5
  --require watirsplash/html_formatter
@@ -9,17 +9,24 @@ module WatirSplash
9
9
  def url url
10
10
  @@url = url
11
11
  end
12
+
12
13
  end
13
14
 
14
15
  def initialize(browser=nil)
15
16
  if browser
16
17
  @browser = WatirSplash::Browser.current = browser
17
18
  else
18
- @browser = WatirSplash::Browser.new
19
+ @browser = (WatirSplash::Browser.current &&
20
+ WatirSplash::Browser.current.exists?) ||
21
+ WatirSplash::Browser.new
19
22
  @browser.goto @@url
20
23
  end
21
24
  end
22
25
 
26
+ def redirect_to page, browser=nil
27
+ page.new browser || WatirSplash::Browser.current
28
+ end
29
+
23
30
  def modify element, methodz
24
31
  methodz.each_pair do |meth, return_value|
25
32
  element.instance_eval do
@@ -44,9 +44,9 @@ module WatirSplash
44
44
  def default_framework
45
45
  case RUBY_PLATFORM
46
46
  when /mswin|msys|mingw32/
47
- :watir
47
+ "watir"
48
48
  when /darwin|linux/
49
- :firewatir
49
+ "watir-webdriver/firefox"
50
50
  else
51
51
  raise "Unsupported platform: #{RUBY_PLATFORM}"
52
52
  end
@@ -1,10 +1,10 @@
1
1
  module WatirSplash
2
2
  module Version
3
- WATIRSPLASH = "2.1.1"
3
+ WATIRSPLASH = "2.2.0"
4
4
 
5
5
  # possible runtime dependencies
6
6
  WATIR = "2.0.1"
7
7
  WIN32SCREENSHOT = "~>1.0.5"
8
- WATIR_WEBDRIVER = "~>0.3.1"
8
+ WATIR_WEBDRIVER = "~>0.3.3"
9
9
  end
10
10
  end
data/spec/page_spec.rb CHANGED
@@ -4,10 +4,15 @@ class DummyPage < WatirSplash::Page::Base
4
4
  def something
5
5
  modify Hash.new,
6
6
  :store => lambda {|a,b| a + b},
7
- :new_method => lambda {[]}
7
+ :new_method => lambda {[]},
8
+ :another_page => lambda {redirect_to AnotherDummyPage},
9
+ :another_page_with_new_browser => lambda {|browser| redirect_to AnotherDummyPage, browser}
8
10
  end
9
11
  end
10
12
 
13
+ class AnotherDummyPage < WatirSplash::Page::Base
14
+ end
15
+
11
16
  describe WatirSplash::Page::Base do
12
17
  before :all do
13
18
  # close the browser opened in environment.rb
@@ -19,7 +24,7 @@ describe WatirSplash::Page::Base do
19
24
  page = DummyPage.new
20
25
  browser = page.instance_variable_get(:@browser)
21
26
  browser.should respond_to(:title)
22
- browser.url.should =~ /bing\.com/
27
+ browser.url.should =~ %r{bing.com}
23
28
  end
24
29
 
25
30
  it "allows to reuse existing browser" do
@@ -29,7 +34,7 @@ describe WatirSplash::Page::Base do
29
34
  page = DummyPage.new(browser)
30
35
  page_browser = page.instance_variable_get(:@browser)
31
36
  page_browser.should == browser
32
- page_browser.url.should =~ /google\.com/
37
+ page_browser.url.should =~ %r{google.com}
33
38
  end
34
39
  end
35
40
 
@@ -63,6 +68,31 @@ describe WatirSplash::Page::Base do
63
68
  end
64
69
  end
65
70
 
71
+ context "#redirect_to" do
72
+ it "redirects to the new page reusing the current browser" do
73
+ page = DummyPage.new
74
+ another_page = page.something.another_page
75
+ another_page.should be_kind_of(AnotherDummyPage)
76
+ another_page.url.should =~ %r{bing.com}
77
+ end
78
+
79
+ it "redirects to the new page using the provided browser" do
80
+ page = DummyPage.new
81
+ old_browser = WatirSplash::Browser.current
82
+
83
+ browser = WatirSplash::Browser.new
84
+ browser.goto "http://google.com/ncr"
85
+ new_page = page.something.another_page_with_new_browser browser
86
+ new_page_browser = new_page.instance_variable_get(:@browser)
87
+ new_page_browser.should == browser
88
+ new_page_browser.url.should =~ %r{google.com}
89
+
90
+ page_browser = page.instance_variable_get(:@browser)
91
+ page_browser.should == old_browser
92
+ page_browser.url.should =~ %r{bing.com}
93
+ end
94
+ end
95
+
66
96
  context "#method_missing" do
67
97
  it "gets SpecHelper module included into class" do
68
98
  DummyPage.included_modules.should include(WatirSplash::SpecHelper)
@@ -71,7 +101,7 @@ describe WatirSplash::Page::Base do
71
101
  it "redirects all missing methods to browser object" do
72
102
  page = DummyPage.new
73
103
  page.should_not respond_to(:text_field)
74
- page.text_field(:id => /somethin/).should be_kind_of(Watir::TextField)
104
+ page.text_field(:id => /something/).should be_kind_of(Watir::TextField)
75
105
  end
76
106
  end
77
107
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watirsplash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 1
9
- - 1
10
- version: 2.1.1
8
+ - 2
9
+ - 0
10
+ version: 2.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jarmo Pertman
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-18 00:00:00 Z
18
+ date: 2011-09-10 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -173,7 +173,7 @@ rubyforge_project:
173
173
  rubygems_version: 1.8.4
174
174
  signing_key:
175
175
  specification_version: 3
176
- summary: watirsplash 2.1.1
176
+ summary: watirsplash 2.2.0
177
177
  test_files:
178
178
  - spec/browser_spec.rb
179
179
  - spec/page_spec.rb