rwebspec 1.6.2 → 1.6.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,5 +1,13 @@
1
1
  CHANGELOG
2
2
  =========
3
+ 1.6.4
4
+ added WebBrwoser.modal_dialog
5
+ added many watir ie methods such as :elements, :divs....
6
+
7
+ 1.6.3
8
+ Add base_authentication for Celerity
9
+ should contains only return maxium 256 chracters in error stack trace, for full using should include
10
+
3
11
  1.6.2
4
12
  add helper method: basic_authentication for IE and Firefox
5
13
 
data/Rakefile CHANGED
@@ -45,7 +45,6 @@ Rake::RDocTask.new do |rdoc|
45
45
  rdoc.title = 'RWebSpec'
46
46
  rdoc.rdoc_files.include('lib/rwebspec.rb')
47
47
  rdoc.rdoc_files.include('lib/rwebspec/*.rb')
48
- rdoc.rdoc_files.delete("lib/rwebspec/test_utils.rb")
49
48
  rdoc.rdoc_files.delete("lib/rwebspec/web_testcase.rb")
50
49
  rdoc.rdoc_files.delete("lib/rwebspec/checkJSDialog.rb")
51
50
  rdoc.options += [
@@ -59,7 +58,6 @@ Rake::RDocTask.new("chm") do |rdoc|
59
58
  rdoc.title = 'RWebSpec'
60
59
  rdoc.rdoc_files.include('lib/rwebspec.rb')
61
60
  rdoc.rdoc_files.include('lib/rwebspec/*.rb')
62
- rdoc.rdoc_files.delete("lib/rwebspec/test_utils.rb")
63
61
  rdoc.rdoc_files.delete("lib/rwebspec/web_testcase.rb")
64
62
  rdoc.rdoc_files.delete("lib/rwebspec/checkJSDialog.rb")
65
63
  rdoc.options += [
@@ -72,7 +70,7 @@ end
72
70
  spec = Gem::Specification.new do |s|
73
71
  s.platform= Gem::Platform::RUBY
74
72
  s.name = "rwebspec"
75
- s.version = "1.6.2"
73
+ s.version = "1.6.4"
76
74
  s.summary = "Executable functional specification for web applications in RSpec syntax and Watir"
77
75
  # s.description = ""
78
76
 
@@ -13,13 +13,13 @@ require File.join(File.dirname(__FILE__), 'matchers', "contains_text.rb")
13
13
  require 'timeout'
14
14
  require 'uri'
15
15
 
16
- require 'watir/screen_capture' if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
16
+ # require 'watir/screen_capture' if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
17
17
 
18
18
  module RWebSpec
19
19
  module Driver
20
20
  include RWebSpec::TestWisePlugin
21
21
  include RWebSpec::Popup
22
- include Watir::ScreenCapture if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
22
+ # include Watir::ScreenCapture if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
23
23
 
24
24
  @@default_polling_interval = 1 # second
25
25
  @@default_timeout = 30 # seconds
@@ -154,6 +154,9 @@ module RWebSpec
154
154
  @web_browser.is_firefox? if @web_browser
155
155
  end
156
156
 
157
+ def is_celerity?
158
+ RUBY_PLATFORM =~ /java/ && @web_browser
159
+ end
157
160
 
158
161
  # Go to another page on the testing site.
159
162
  #
@@ -900,6 +903,20 @@ module RWebSpec
900
903
  # read_socket()
901
904
  end
902
905
 
906
+ def basic_authentication_celerity(username, password)
907
+ @web_browser.celerity.credentials = "#{username}:#{password}"
908
+ end
909
+
910
+ def basic_authentication(username, password, options = {})
911
+ if is_celerity?
912
+ basic_authentication_celerity(username, password)
913
+ elsif is_firefox?
914
+ basic_authentication_firefox(username, password)
915
+ else
916
+ basic_authentication_ie(options[:title], username, password, options)
917
+ end
918
+ end
919
+
903
920
  # take_screenshot to save the current active window
904
921
  # TODO can't move mouse
905
922
  def take_screenshot
@@ -14,12 +14,12 @@ class ContainsText
14
14
  end
15
15
 
16
16
  def actual_text
17
- @actual.to_s.length > 1000000 ? @actual[0, 1000] : @actual
17
+ @actual.to_s.length > 256 ? @actual[0, 255] : @actual
18
18
  end
19
19
 
20
20
  # error message for should
21
21
  def failure_message
22
- "expected '#{actual_text}' to contain '#{@expected}', but it did't"
22
+ "expected '#{actual_text}' to contain '#{@expected}', but it didn't"
23
23
  end
24
24
 
25
25
  # error message for should_not
@@ -5,14 +5,15 @@
5
5
 
6
6
  begin
7
7
  require 'watir'
8
- require 'watir/contrib/enabled_popup'
9
- require 'watir/close_all'
10
- require 'watir/screen_capture'
8
+ # require 'watir/contrib/enabled_popup'
9
+ # require 'watir/close_all'
10
+ # require 'watir/screen_capture'
11
11
  # NO need any more
12
12
  # require 'watir/ie'
13
13
  # require 'watir/contrib/visible'
14
14
  $watir_loaded = true
15
15
  rescue LoadError => e
16
+ puts e
16
17
  $watir_loaded = false
17
18
  end
18
19
 
@@ -21,6 +22,7 @@ begin
21
22
  require "firewatir";
22
23
  $firewatir_loaded = true
23
24
  rescue LoadError => e
25
+ puts e
24
26
  $firewatir_loaded = false
25
27
  end
26
28
 
@@ -179,6 +181,78 @@ module RWebSpec
179
181
  end
180
182
  end
181
183
 
184
+ def modal_dialog(how=nil, what=nil)
185
+ @browser.modal_dialog(how, what)
186
+ end
187
+
188
+ # This is the main method for accessing a generic element with a given attibute
189
+ # * how - symbol - how we access the element. Supports all values except :index and :xpath
190
+ # * what - string, integer or regular expression - what we are looking for,
191
+ #
192
+ # Valid values for 'how' are listed in the Watir Wiki - http://wiki.openqa.org/display/WTR/Methods+supported+by+Element
193
+ #
194
+ # returns an Watir::Element object
195
+ #
196
+ # Typical Usage
197
+ #
198
+ # element(:class, /foo/) # access the first element with class 'foo'. We can use a string in place of the regular expression
199
+ # element(:id, "11") # access the first element that matches an id
200
+ def element(how, what)
201
+ return @browser.element(how, what)
202
+ end
203
+
204
+ # this is the main method for accessing generic html elements by an attribute
205
+ #
206
+ # Returns a HTMLElements object
207
+ #
208
+ # Typical usage:
209
+ #
210
+ # elements(:class, 'test').each { |l| puts l.to_s } # iterate through all elements of a given attribute
211
+ # elements(:alt, 'foo')[1].to_s # get the first element of a given attribute
212
+ # elements(:id, 'foo').length # show how many elements are foung in the collection
213
+ #
214
+ def elements(how, what)
215
+ return @browser.elements(how, what)
216
+ end
217
+
218
+ def show_all_objects
219
+ @browser.show_all_objects
220
+ end
221
+
222
+ # Returns the specified ole object for input elements on a web page.
223
+ #
224
+ # This method is used internally by Watir and should not be used externally. It cannot be marked as private because of the way mixins and inheritance work in watir
225
+ #
226
+ # * how - symbol - the way we look for the object. Supported values are
227
+ # - :name
228
+ # - :id
229
+ # - :index
230
+ # - :value etc
231
+ # * what - string that we are looking for, ex. the name, or id tag attribute or index of the object we are looking for.
232
+ # * types - what object types we will look at.
233
+ # * value - used for objects that have one name, but many values. ex. radio lists and checkboxes
234
+ def locate_input_element(how, what, types, value=nil)
235
+ @browser.locate_input_element(how, what, types, value)
236
+ end
237
+
238
+ # This is the main method for accessing map tags - http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/map.asp?frame=true
239
+ # * how - symbol - how we access the map,
240
+ # * what - string, integer or regular expression - what we are looking for,
241
+ #
242
+ # Valid values for 'how' are listed in the Watir Wiki - http://wiki.openqa.org/display/WTR/Methods+supported+by+Element
243
+ #
244
+ # returns a map object
245
+ #
246
+ # Typical Usage
247
+ #
248
+ # map(:id, /list/) # access the first map that matches list.
249
+ # map(:index,2) # access the second map on the page
250
+ # map(:title, "A Picture") # access a map using the tooltip text. See http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/title_1.asp?frame=true
251
+ #
252
+ def map(how, what=nil)
253
+ @browser.map(how, what)
254
+ end
255
+
182
256
  def contains_text(text)
183
257
  @browser.contains_text(text);
184
258
  end
@@ -208,7 +282,7 @@ module RWebSpec
208
282
  end
209
283
  end
210
284
 
211
- [:images, :links, :buttons, :select_lists, :checkboxes, :radios, :text_fields].each do |method|
285
+ [:images, :links, :buttons, :select_lists, :checkboxes, :radios, :text_fields, :divs, :dls, :dds, :dts, :ems, :lis, :maps, :spans, :strongs, :ps, :pres, :labels].each do |method|
212
286
  define_method method do
213
287
  @browser.send(method)
214
288
  end
@@ -585,6 +659,11 @@ module RWebSpec
585
659
  @browser
586
660
  end
587
661
 
662
+ def celerity
663
+ raise "can't call this as it is configured to use Celerity" unless RUBY_PLATFORM =~ /java/
664
+ @browser
665
+ end
666
+
588
667
  # Save current web page source to file
589
668
  # usage:
590
669
  # save_page("/tmp/01.html")
data/lib/rwebspec.rb CHANGED
@@ -14,7 +14,7 @@ require 'active_support/core_ext'
14
14
  require 'spec'
15
15
 
16
16
  unless defined? RWEBSPEC_VERSION
17
- RWEBSPEC_VERSION = RWEBUNIT_VERSION = "1.6.2"
17
+ RWEBSPEC_VERSION = RWEBUNIT_VERSION = "1.6.4"
18
18
  end
19
19
 
20
20
  # Extra full path to load libraries
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rwebspec
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 6
9
- - 2
10
- version: 1.6.2
9
+ - 4
10
+ version: 1.6.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Zhimin Zhan
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-08 00:00:00 +10:00
18
+ date: 2010-10-18 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency