operawatir 0.3.2-jruby → 0.3.7.pre1-jruby

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.
Files changed (53) hide show
  1. data/.gitmodules +3 -0
  2. data/.yardopts +0 -3
  3. data/Gemfile +5 -6
  4. data/Rakefile +7 -2
  5. data/VERSION +1 -1
  6. data/bin/desktopwatir +86 -93
  7. data/bin/operawatir +3 -18
  8. data/lib/operadriver/commons-io-2.0.1.jar +0 -0
  9. data/lib/operadriver/selenium-common.jar +0 -0
  10. data/lib/operadriver/webdriver-opera.jar +0 -0
  11. data/lib/operawatir/browser.rb +93 -77
  12. data/lib/operawatir/compat/browser.rb +5 -0
  13. data/lib/operawatir/compat/element.rb +10 -17
  14. data/lib/operawatir/compat.rb +0 -1
  15. data/lib/operawatir/desktop-waiter.rb +1 -143
  16. data/lib/operawatir/desktop_browser.rb +80 -33
  17. data/lib/operawatir/desktop_enums.rb +3 -3
  18. data/lib/operawatir/desktop_helper.rb +84 -0
  19. data/lib/operawatir/element.rb +23 -4
  20. data/lib/operawatir/exceptions.rb +3 -0
  21. data/lib/operawatir/helper.rb +4 -1
  22. data/lib/operawatir/platform.rb +0 -38
  23. data/lib/operawatir/preferences.rb +164 -0
  24. data/lib/operawatir/quickwidgets/quick_addressfield.rb +14 -0
  25. data/lib/operawatir/quickwidgets/quick_button.rb +7 -1
  26. data/lib/operawatir/quickwidgets/quick_checkbox.rb +5 -4
  27. data/lib/operawatir/quickwidgets/quick_dialogtab.rb +1 -1
  28. data/lib/operawatir/quickwidgets/quick_editfield.rb +9 -4
  29. data/lib/operawatir/quickwidgets/quick_thumbnail.rb +1 -1
  30. data/lib/operawatir/quickwidgets/quick_treeitem.rb +2 -2
  31. data/lib/operawatir/quickwidgets/quick_treeview.rb +2 -1
  32. data/lib/operawatir/quickwidgets/quick_widget.rb +51 -21
  33. data/lib/operawatir/quickwidgets/quick_window.rb +34 -19
  34. data/lib/operawatir/spatnav.rb +38 -0
  35. data/lib/operawatir/window.rb +76 -12
  36. data/lib/operawatir.rb +20 -4
  37. data/operawatir.gemspec +48 -28
  38. data/spec/new_watirspec/browser_spec.rb +5 -84
  39. data/spec/new_watirspec/clipboard_spec.rb +41 -56
  40. data/spec/new_watirspec/collection_spec.rb +2 -2
  41. data/spec/new_watirspec/element_spec.rb +8 -8
  42. data/spec/new_watirspec/keys_spec.rb +8 -10
  43. data/spec/new_watirspec/preferences_spec.rb +144 -0
  44. data/spec/new_watirspec/screenshot_spec.rb +34 -0
  45. data/spec/new_watirspec/spatnav_spec.rb +62 -0
  46. data/utils/formatters/operahelper_formatter.rb +50 -0
  47. data/utils/formatters/spartan_formatter.rb +29 -0
  48. metadata +126 -61
  49. data/lib/operawatir/compat/deprecation.rb +0 -46
  50. data/utils/launchers/launcher-linux-i686 +0 -0
  51. data/utils/launchers/launcher-linux-x86_64 +0 -0
  52. data/utils/launchers/launcher-mac +0 -0
  53. data/utils/launchers/launcher-win32-i86pc.exe +0 -0
@@ -1,7 +1,18 @@
1
1
  class OperaWatir::Window
2
+ include Deprecated
2
3
 
3
4
  attr_accessor :browser
4
5
 
6
+ # Creates a new window in the browser. Note that Opera does not
7
+ # differentiate between windows and tabs. To directly create a
8
+ # _Window_ object, pass in the _Browser_.
9
+ #
10
+ # @example
11
+ # window = browser.url = 'http://example.org/'
12
+ # => OperaWatir::Window
13
+ #
14
+ # @param [Object] browser The _Browser_ object.
15
+ # @return [Object] A new _Window_ object.
5
16
  def initialize(browser)
6
17
  self.browser = browser
7
18
  end
@@ -9,60 +20,92 @@ class OperaWatir::Window
9
20
 
10
21
  # Navigation
11
22
 
23
+ # Navigates back one step in the browser's history.
12
24
  def back
13
25
  driver.navigate.back
14
26
  end
15
27
 
28
+ # Navigates forward one step in the browser's history.
16
29
  def forward
17
30
  driver.navigate.forward
18
31
  end
19
32
 
33
+ # Stops the currently loading page.
20
34
  def stop
21
35
  driver.stop
22
36
  end
23
37
 
24
- # FIXME No window management support
38
+ # Closes the currently open window.
25
39
  def close
26
- driver.close
40
+ driver.close # FIXME?
27
41
  end
28
42
 
43
+ # Refreshes the currently loaded page.
29
44
  def refresh
30
45
  driver.navigate.refresh
31
46
  end
32
47
 
48
+ # Gets the title of the document.
49
+ #
50
+ # @return [String] The title of the current document.
33
51
  def title
34
52
  driver.getTitle
35
53
  end
36
54
 
55
+ # Gets the URL of the document.
56
+ #
57
+ # @return [String] The URL of the current document.
37
58
  def url
38
59
  driver.getCurrentUrl
39
60
  end
40
61
 
62
+ # Navigates to a new URL.
63
+ #
64
+ # @param [String] url The new URL to navigate to.
41
65
  def url=(url)
42
66
  driver.get(url)
43
67
  end
44
68
  alias_method :goto, :url= # deprecate?
45
69
 
70
+ # Retrieves the text without the DOM or source code from the
71
+ # currently loaded document.
72
+ #
73
+ # @return [String] The text of the document.
46
74
  def text
47
75
  driver.getText
48
76
  end
49
77
 
78
+ # Retrieves the HTML/source code of the currently loaded document.
79
+ #
80
+ # @return [String] The page source code.
50
81
  def html
51
82
  driver.getPageSource
52
83
  end
53
84
 
54
- # TODO: Expose window querying from driver
85
+ # Checks if the window is still open. True if the window is still
86
+ # present, false otherwise.
87
+ #
88
+ # @return [Boolean] Whether the window is open or not.
55
89
  def exists?
90
+ # TODO: Expose window querying from driver
56
91
  url != ''
57
92
  end
58
93
 
94
+ # TODO
95
+ =begin
59
96
  def document
60
97
  end
98
+ =end
61
99
 
62
- def eval_js(js)
100
+ # Executes the given JavaScript on the current window.
101
+ #
102
+ # @param [String] js The script to be executed.
103
+ # @return [String] Optionally returns the JS result.
104
+ def execute_script(js)
63
105
  object = driver.executeScript(js, [].to_java(:string))
64
106
  end
65
- alias_method :execute_script, :eval_js
107
+ alias_method :eval_js, :execute_script
108
+ deprecated :eval_js, "window.execute_script"
66
109
 
67
110
 
68
111
  # Keyboard
@@ -70,28 +113,46 @@ class OperaWatir::Window
70
113
  def key(key)
71
114
  driver.key(key)
72
115
  end
116
+ deprecated :key, "browser.keys.send"
73
117
 
74
118
  def key_down(key)
75
119
  driver.keyDown(key)
76
120
  end
121
+ deprecated :key, "browser.keys.down"
77
122
 
78
123
  def key_up(key)
79
124
  driver.keyUp(key)
80
125
  end
126
+ deprecated :key, "browser.keys.up or browser.keys.release"
81
127
 
82
128
  def type(text)
83
129
  driver.type(text)
84
130
  end
131
+ deprecated :key, "browser.keys.send"
85
132
 
86
133
 
87
134
  # Opera-specific
88
135
 
136
+ # Saves a screenshot of the window to the filesystem of the server.
137
+ #
138
+ # @param [String] file_name The absolute path to the location where
139
+ # you want the screenshot saved.
140
+ # @param [Hash] hashes A list of hashes to compare. If the hashes
141
+ # match the hashes of what you are trying to take a screenshot of,
142
+ # this method will return a boolean value instead of an actual
143
+ # screenshot.
144
+ # @param [Integer] time_out Specifies how long we should wait before
145
+ # timing out.
146
+ #
147
+ # @return [Object] A ScreenShotReply object.
148
+ # @return [Boolean] True/false depending on whether you have given a
149
+ # hash as an argument.
89
150
  def screenshot(file_name, hashes=[], time_out=2)
90
151
  driver.saveScreenshot(file_name, time_out, hashes.to_java(:string))
91
152
  end
92
153
 
93
154
  def visual_hash(time_out=50)
94
- document.visual_hash timeout
155
+ document.visual_hash time_out
95
156
  end
96
157
 
97
158
  # Raw finders
@@ -107,6 +168,9 @@ class OperaWatir::Window
107
168
  alias_method :find_by_class, :find_by_class_name
108
169
  alias_method :find_by_tag, :find_by_tag_name
109
170
 
171
+ # Finds all elements in document.
172
+ #
173
+ # @return [Collection] A collection of elements.
110
174
  def elements
111
175
  find_by_tag('*')
112
176
  end
@@ -123,7 +187,7 @@ private
123
187
 
124
188
  # Locate elements by id.
125
189
  #
126
- # @return [Array] an array of found elements
190
+ # @return [Array] An array of found elements.
127
191
  def find_elements_by_id(value)
128
192
  driver.findElementsById(value).to_a.map do |node|
129
193
  OperaWatir::Element.new(node)
@@ -132,7 +196,7 @@ private
132
196
 
133
197
  # Locate elements by class.
134
198
  #
135
- # @return [Array] an array of found elements
199
+ # @return [Array] An array of found elements.
136
200
  def find_elements_by_class_name(value)
137
201
  driver.findElementsByClassName(value).to_a.map do |node|
138
202
  OperaWatir::Element.new(node)
@@ -141,7 +205,7 @@ private
141
205
 
142
206
  # Locate elements by tag name.
143
207
  #
144
- # @return [Array] an array of found elements
208
+ # @return [Array] An array of found elements.
145
209
  def find_elements_by_tag_name(value)
146
210
  driver.findElementsByTagName(value).to_a.map do |node|
147
211
  OperaWatir::Element.new(node)
@@ -150,7 +214,7 @@ private
150
214
 
151
215
  # Locate elements by CSS selector.
152
216
  #
153
- # @return [Array] an array of found elements
217
+ # @return [Array] An array of found elements.
154
218
  def find_elements_by_css(value)
155
219
  driver.findElementsByCssSelector(value).to_a.map do |node|
156
220
  OperaWatir::Element.new(node)
@@ -159,7 +223,7 @@ private
159
223
 
160
224
  # Locate elements by XPath expression.
161
225
  #
162
- # @return [Array] an array of found elements
226
+ # @return [Array] An array of found elements.
163
227
  def find_elements_by_xpath(value)
164
228
  driver.findElementsByXPath(value).to_a.map do |node|
165
229
  OperaWatir::Element.new(node)
@@ -168,7 +232,7 @@ private
168
232
 
169
233
  # Locate elements by attribute @name.
170
234
  #
171
- # @return [Array] an array of found elements
235
+ # @return [Array] An array of found elements.
172
236
  def find_elements_by_name(value)
173
237
  driver.findElementsByName(value).to_a.map do |node|
174
238
  OperaWatir::Element.new(node)
data/lib/operawatir.rb CHANGED
@@ -1,25 +1,31 @@
1
1
  $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
2
  require 'forwardable'
3
+ require 'deprecated'
3
4
  require 'java'
4
5
  include Java
5
6
 
6
7
  %w(commons-jxpath-1.3.jar protobuf-java-2.3.0.jar selenium-common.jar
7
- webdriver-opera.jar).each { |jar| require "operadriver/#{jar}" }
8
+ webdriver-opera.jar commons-io-2.0.1.jar).each { |jar| require "operadriver/#{jar}" }
8
9
 
9
10
  include_class org.openqa.selenium.WebDriver
10
11
  include_class org.openqa.selenium.RenderedWebElement
11
12
  include_class org.openqa.selenium.NoSuchElementException
12
- include_class com.opera.core.systems.OperaDesktopDriver
13
13
  include_class com.opera.core.systems.OperaDriver
14
14
  include_class com.opera.core.systems.OperaWebElement
15
15
  include_class com.opera.core.systems.settings.OperaDriverSettings
16
16
 
17
+ # Desktop stuff
18
+ include_class com.opera.core.systems.OperaDesktopDriver
19
+ include_class com.opera.core.systems.scope.protos.DesktopWmProtos
20
+ include_class com.opera.core.systems.scope.protos.SystemInputProtos
21
+ include_class com.opera.core.systems.QuickWidget
22
+
17
23
  $KCODE = 'u' # UTF-8 support
18
24
 
19
25
  # TODO This should be replaced when we decide upon a better way of
20
- # enabling the Watir 2 API.
26
+ # enabling the Watir 3 API.
21
27
  module OperaWatir
22
- @current_api = 1
28
+ @current_api = 2
23
29
 
24
30
  # Set the API version you wish to use. Please note that setting
25
31
  # this after OperaWatir::Browser has been initialized will have no
@@ -41,6 +47,8 @@ end
41
47
  require 'operawatir/version'
42
48
  require 'operawatir/platform'
43
49
  require 'operawatir/keys'
50
+ require 'operawatir/preferences'
51
+ require 'operawatir/spatnav'
44
52
 
45
53
  require 'operawatir/exceptions'
46
54
  require 'operawatir/selector'
@@ -50,3 +58,11 @@ require 'operawatir/window'
50
58
  require 'operawatir/browser'
51
59
 
52
60
  require 'operawatir/compat'
61
+
62
+ # Desktop stuff
63
+ require 'operawatir/desktop_enums'
64
+ require 'operawatir/desktop_common'
65
+ require 'operawatir/desktop_container'
66
+ require 'operawatir/desktop_browser'
67
+ require 'operawatir/quickwidgets'
68
+ require 'operawatir/desktop_exceptions'
data/operawatir.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{operawatir}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.5"
9
9
  s.platform = %q{jruby}
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Deniz Turkoglu", "Andreas Tolf Tolfsen", "Chris Lloyd", "Stuart Knightley"]
13
- s.date = %q{2011-01-31}
13
+ s.date = %q{2011-02-08}
14
14
  s.description = %q{ OperaWatir is a part of the Watir (pronounced water) family of
15
15
  free software Ruby libraries for automating web
16
16
  browsers. OperaWatir provides a querying engine and Ruby bindings
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
24
24
  "README.md"
25
25
  ]
26
26
  s.files = [
27
+ ".gitmodules",
27
28
  ".yardopts",
28
29
  "AUTHORS",
29
30
  "Gemfile",
@@ -35,6 +36,7 @@ Gem::Specification.new do |s|
35
36
  "bin/operawatir",
36
37
  "lib/operadriver/APACHE_2.0_LICENSE.txt",
37
38
  "lib/operadriver/NEW_BSD_LICENSE.txt",
39
+ "lib/operadriver/commons-io-2.0.1.jar",
38
40
  "lib/operadriver/commons-jxpath-1.3.jar",
39
41
  "lib/operadriver/protobuf-java-2.3.0.jar",
40
42
  "lib/operadriver/selenium-common.jar",
@@ -45,7 +47,6 @@ Gem::Specification.new do |s|
45
47
  "lib/operawatir/compat.rb",
46
48
  "lib/operawatir/compat/browser.rb",
47
49
  "lib/operawatir/compat/collection.rb",
48
- "lib/operawatir/compat/deprecation.rb",
49
50
  "lib/operawatir/compat/element.rb",
50
51
  "lib/operawatir/compat/element_finders.rb",
51
52
  "lib/operawatir/compat/window.rb",
@@ -55,11 +56,13 @@ Gem::Specification.new do |s|
55
56
  "lib/operawatir/desktop_container.rb",
56
57
  "lib/operawatir/desktop_enums.rb",
57
58
  "lib/operawatir/desktop_exceptions.rb",
59
+ "lib/operawatir/desktop_helper.rb",
58
60
  "lib/operawatir/element.rb",
59
61
  "lib/operawatir/exceptions.rb",
60
62
  "lib/operawatir/helper.rb",
61
63
  "lib/operawatir/keys.rb",
62
64
  "lib/operawatir/platform.rb",
65
+ "lib/operawatir/preferences.rb",
63
66
  "lib/operawatir/quickwidgets.rb",
64
67
  "lib/operawatir/quickwidgets/quick_addressfield.rb",
65
68
  "lib/operawatir/quickwidgets/quick_button.rb",
@@ -78,6 +81,7 @@ Gem::Specification.new do |s|
78
81
  "lib/operawatir/quickwidgets/quick_widget.rb",
79
82
  "lib/operawatir/quickwidgets/quick_window.rb",
80
83
  "lib/operawatir/selector.rb",
84
+ "lib/operawatir/spatnav.rb",
81
85
  "lib/operawatir/version.rb",
82
86
  "lib/operawatir/window.rb",
83
87
  "operawatir.gemspec",
@@ -216,10 +220,8 @@ Gem::Specification.new do |s|
216
220
  "spec/legacy_watirspec/watir_compatibility_spec.rb",
217
221
  "spec/legacy_watirspec/watirspec_helper.rb",
218
222
  "utils/Rakefile",
219
- "utils/launchers/launcher-linux-i686",
220
- "utils/launchers/launcher-linux-x86_64",
221
- "utils/launchers/launcher-mac",
222
- "utils/launchers/launcher-win32-i86pc.exe"
223
+ "utils/formatters/operahelper_formatter.rb",
224
+ "utils/formatters/spartan_formatter.rb"
223
225
  ]
224
226
  s.homepage = %q{http://operasoftware.github.com/operawatir}
225
227
  s.require_paths = ["lib"]
@@ -316,7 +318,10 @@ Gem::Specification.new do |s|
316
318
  "spec/new_watirspec/element_spec.rb",
317
319
  "spec/new_watirspec/guards.rb",
318
320
  "spec/new_watirspec/keys_spec.rb",
321
+ "spec/new_watirspec/preferences_spec.rb",
322
+ "spec/new_watirspec/screenshot_spec.rb",
319
323
  "spec/new_watirspec/server.rb",
324
+ "spec/new_watirspec/spatnav_spec.rb",
320
325
  "spec/new_watirspec/watirspec_helper.rb",
321
326
  "spec/new_watirspec/window_spec.rb"
322
327
  ]
@@ -327,56 +332,71 @@ Gem::Specification.new do |s|
327
332
 
328
333
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
329
334
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
330
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
331
- s.add_development_dependency(%q<rcov>, [">= 0"])
332
- s.add_development_dependency(%q<yard>, [">= 0.6.3"])
335
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
333
336
  s.add_development_dependency(%q<bluecloth>, ["= 1.0.1"])
334
- s.add_development_dependency(%q<rspec>, [">= 2.4"])
335
- s.add_development_dependency(%q<sinatra>, [">= 1.0.0"])
337
+ s.add_development_dependency(%q<yard>, [">= 0"])
336
338
  s.add_development_dependency(%q<mongrel>, [">= 1.1.5"])
337
- s.add_development_dependency(%q<rr>, [">= 1.0.2"])
338
- s.add_runtime_dependency(%q<rspec>, [">= 2.4"])
339
+ s.add_development_dependency(%q<sinatra>, [">= 1.1"])
340
+ s.add_development_dependency(%q<rr>, [">= 0"])
341
+ s.add_development_dependency(%q<clipboard>, [">= 0"])
342
+ s.add_runtime_dependency(%q<rspec>, ["= 2.4"])
343
+ s.add_runtime_dependency(%q<inifile>, [">= 0.3"])
344
+ s.add_runtime_dependency(%q<i18n>, [">= 0"])
345
+ s.add_runtime_dependency(%q<activesupport>, [">= 3.0.1"])
346
+ s.add_runtime_dependency(%q<deprecated>, [">= 0"])
339
347
  s.add_development_dependency(%q<jeweler>, [">= 0"])
340
348
  s.add_development_dependency(%q<rake>, [">= 0"])
349
+ s.add_development_dependency(%q<bluecloth>, ["= 1.0.1"])
341
350
  s.add_development_dependency(%q<yard>, [">= 0"])
342
351
  s.add_development_dependency(%q<mongrel>, [">= 1.1.5"])
343
352
  s.add_development_dependency(%q<sinatra>, [">= 1.1"])
344
353
  s.add_development_dependency(%q<rr>, [">= 0"])
354
+ s.add_development_dependency(%q<clipboard>, [">= 0"])
345
355
  else
346
356
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
347
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
348
- s.add_dependency(%q<rcov>, [">= 0"])
349
- s.add_dependency(%q<yard>, [">= 0.6.3"])
357
+ s.add_dependency(%q<jeweler>, [">= 0"])
350
358
  s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
351
- s.add_dependency(%q<rspec>, [">= 2.4"])
352
- s.add_dependency(%q<sinatra>, [">= 1.0.0"])
359
+ s.add_dependency(%q<yard>, [">= 0"])
353
360
  s.add_dependency(%q<mongrel>, [">= 1.1.5"])
354
- s.add_dependency(%q<rr>, [">= 1.0.2"])
355
- s.add_dependency(%q<rspec>, [">= 2.4"])
361
+ s.add_dependency(%q<sinatra>, [">= 1.1"])
362
+ s.add_dependency(%q<rr>, [">= 0"])
363
+ s.add_dependency(%q<clipboard>, [">= 0"])
364
+ s.add_dependency(%q<rspec>, ["= 2.4"])
365
+ s.add_dependency(%q<inifile>, [">= 0.3"])
366
+ s.add_dependency(%q<i18n>, [">= 0"])
367
+ s.add_dependency(%q<activesupport>, [">= 3.0.1"])
368
+ s.add_dependency(%q<deprecated>, [">= 0"])
356
369
  s.add_dependency(%q<jeweler>, [">= 0"])
357
370
  s.add_dependency(%q<rake>, [">= 0"])
371
+ s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
358
372
  s.add_dependency(%q<yard>, [">= 0"])
359
373
  s.add_dependency(%q<mongrel>, [">= 1.1.5"])
360
374
  s.add_dependency(%q<sinatra>, [">= 1.1"])
361
375
  s.add_dependency(%q<rr>, [">= 0"])
376
+ s.add_dependency(%q<clipboard>, [">= 0"])
362
377
  end
363
378
  else
364
379
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
365
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
366
- s.add_dependency(%q<rcov>, [">= 0"])
367
- s.add_dependency(%q<yard>, [">= 0.6.3"])
380
+ s.add_dependency(%q<jeweler>, [">= 0"])
368
381
  s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
369
- s.add_dependency(%q<rspec>, [">= 2.4"])
370
- s.add_dependency(%q<sinatra>, [">= 1.0.0"])
382
+ s.add_dependency(%q<yard>, [">= 0"])
371
383
  s.add_dependency(%q<mongrel>, [">= 1.1.5"])
372
- s.add_dependency(%q<rr>, [">= 1.0.2"])
373
- s.add_dependency(%q<rspec>, [">= 2.4"])
384
+ s.add_dependency(%q<sinatra>, [">= 1.1"])
385
+ s.add_dependency(%q<rr>, [">= 0"])
386
+ s.add_dependency(%q<clipboard>, [">= 0"])
387
+ s.add_dependency(%q<rspec>, ["= 2.4"])
388
+ s.add_dependency(%q<inifile>, [">= 0.3"])
389
+ s.add_dependency(%q<i18n>, [">= 0"])
390
+ s.add_dependency(%q<activesupport>, [">= 3.0.1"])
391
+ s.add_dependency(%q<deprecated>, [">= 0"])
374
392
  s.add_dependency(%q<jeweler>, [">= 0"])
375
393
  s.add_dependency(%q<rake>, [">= 0"])
394
+ s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
376
395
  s.add_dependency(%q<yard>, [">= 0"])
377
396
  s.add_dependency(%q<mongrel>, [">= 1.1.5"])
378
397
  s.add_dependency(%q<sinatra>, [">= 1.1"])
379
398
  s.add_dependency(%q<rr>, [">= 0"])
399
+ s.add_dependency(%q<clipboard>, [">= 0"])
380
400
  end
381
401
  end
382
402
 
@@ -48,9 +48,9 @@ describe 'Browser' do
48
48
  end
49
49
  end
50
50
 
51
- describe '#quit!' do
51
+ describe '#quit' do
52
52
  before :each do
53
- browser.quit!
53
+ browser.quit
54
54
  end
55
55
 
56
56
  it 'quits the browser' do
@@ -78,6 +78,7 @@ describe 'Browser' do
78
78
  end
79
79
  end
80
80
 
81
+ =begin
81
82
  describe '#windows' do
82
83
  before :all do
83
84
  puts 'AFTER QUIT!'
@@ -106,6 +107,7 @@ describe 'Browser' do
106
107
  # TODO: Window selectors
107
108
 
108
109
  end
110
+ =end
109
111
 
110
112
  describe '#version' do
111
113
  it 'fetches the version number of the driver' do
@@ -153,7 +155,7 @@ describe 'Browser' do
153
155
  end
154
156
 
155
157
  it 'is not attached to a browser instance' do
156
- browser.quit!
158
+ browser.quit
157
159
  browser.connected?.should be_false
158
160
  end
159
161
  end
@@ -195,85 +197,4 @@ describe 'Browser' do
195
197
  end
196
198
  end
197
199
 
198
- describe '#preferences' do
199
- it 'is a list of all preferences' do
200
- browser.preferences.length.should > 10
201
- end
202
-
203
- it 'contains options' do
204
- browser.preferences('Developer Tools', 'Proxy Auto Connect').should_not be_empty
205
- end
206
-
207
- it 'gets a value of an option' do
208
- browser.preferences('Cache', 'SVG Cache Size').should be_numeric
209
- browser.preferences('Cache', 'SVG Cache Size').should_not be_zero
210
- end
211
-
212
- it 'returns a top block of preferences' do
213
- browser.preferences.each do |section, option, value|
214
- section.should_not be_empty
215
- option.should_not be_empty
216
- end
217
- end
218
-
219
- it 'returns a sub block of preferences' do
220
- browser.preferences('Cache').each do |option, value|
221
- option.should_not be_empty
222
- end
223
- end
224
-
225
- # I'm not sure if this works, we'll have to extend all returned values
226
- # (see 'gets a value of an option') with a .default and .reset! property
227
- describe '#default' do
228
- it 'fetches default value of an option' do
229
- browser.preferences('Cache', 'SVG Cache Size').default.should > 2000
230
- end
231
- end
232
-
233
- describe '#reset!' do
234
- it 'resets an option to default' do
235
- browser.preferences('Cache', 'SVG Cache Size').reset!
236
- browser.preferences('Cache', 'SVG Cache Size').should == browser.preferences('Cache', 'SVG Cache Size').default
237
- end
238
- end
239
-
240
- end
241
-
242
- describe '#preferences=' do
243
- before :all do
244
- # Caches options that we will tamper with.
245
- @preferences = browser.preferences
246
- end
247
-
248
- it 'sets an option' do
249
- browser.preferences('Cache', 'Application Cache Quota').value = 0
250
- browser.preferences('Cache', 'Application Cache Quota').should == 0
251
- end
252
-
253
- it 'sets options by a given block' do
254
- preferences = {
255
- 'Cache' => {
256
- 'Always Check Never-Expiring GET queries' => false,
257
- 'Application Cache Quota' => -5000,
258
- 'SVG Cache Size' => 2000
259
- }
260
- }
261
-
262
- browser.preferences = preferences
263
-
264
- browser.preferences('Cache', 'Always Check Never-Expiring GET queries').should_not be_true
265
- browser.preferences('Cache', 'Application Cache Quota').should == -5000
266
- browser.preferences('Cache', 'SVG Cache Size').should == 2000
267
-
268
- # Making sure setting block didn't affect any other blocks.
269
- browser.preferences('Colors', 'Background').should == @preferences['Colors']['Background']
270
- browser.preferences('Fonts', 'Dialog').should == @preferences['Fonts']['Dialog']
271
- end
272
-
273
- after :all do
274
- # Resets options that we've tampered with.
275
- browser.preferences = @preferences
276
- end
277
- end
278
-
279
200
  end