commonwatir 1.6.5 → 1.6.6.rc1

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 (56) hide show
  1. data/CHANGES +461 -0
  2. data/{README.txt → LICENSE} +22 -48
  3. data/Rakefile +13 -11
  4. data/VERSION +1 -0
  5. data/lib/commonwatir.rb +3 -3
  6. data/lib/watir.rb +7 -6
  7. data/lib/watir/assertions.rb +44 -44
  8. data/lib/watir/browser.rb +149 -149
  9. data/lib/watir/browsers.rb +13 -12
  10. data/lib/watir/exceptions.rb +47 -47
  11. data/lib/watir/matches.rb +17 -17
  12. data/lib/watir/options.rb +53 -52
  13. data/lib/watir/testcase.rb +97 -58
  14. data/lib/watir/waiter.rb +91 -91
  15. data/unittests/attach_to_existing_window_test.rb +71 -0
  16. data/unittests/browser_test.rb +18 -0
  17. data/unittests/buttons_test.rb +224 -0
  18. data/unittests/dd_test.rb +70 -0
  19. data/unittests/dl_test.rb +68 -0
  20. data/unittests/dt_test.rb +68 -0
  21. data/unittests/element_collections_test.rb +22 -0
  22. data/unittests/em_test.rb +67 -0
  23. data/unittests/form2_test.rb +22 -0
  24. data/unittests/html/blankpage.html +12 -0
  25. data/unittests/html/buttons1.html +41 -0
  26. data/unittests/html/buttons2.html +61 -0
  27. data/unittests/html/definition_lists.html +48 -0
  28. data/unittests/html/emphasis.html +12 -0
  29. data/unittests/html/entertainment_com.html +668 -0
  30. data/unittests/html/frame_buttons.html +4 -0
  31. data/unittests/html/images/button.jpg +0 -0
  32. data/unittests/html/pass.html +10 -0
  33. data/unittests/html/phrase_elements.html +15 -0
  34. data/unittests/html/select_lists.html +18 -0
  35. data/unittests/html/utf8.html +12 -0
  36. data/unittests/html/visibility.html +90 -0
  37. data/unittests/html/watir_unit_tests.css +64 -0
  38. data/unittests/html/whitespace.html +29 -0
  39. data/unittests/inspect_test.rb +29 -0
  40. data/unittests/options.yml.example +13 -0
  41. data/unittests/select_list_test.rb +19 -0
  42. data/unittests/setup.rb +17 -0
  43. data/unittests/setup/browser.rb +14 -0
  44. data/unittests/setup/capture_io_helper.rb +17 -0
  45. data/unittests/setup/filter.rb +24 -0
  46. data/unittests/setup/lib.rb +22 -0
  47. data/unittests/setup/options.rb +29 -0
  48. data/unittests/setup/testUnitAddons.rb +8 -0
  49. data/unittests/setup/watir-unittest.rb +74 -0
  50. data/unittests/strong_test.rb +32 -0
  51. data/unittests/utf8_test.rb +24 -0
  52. data/unittests/visibility_test.rb +47 -0
  53. data/unittests/whitespace_test.rb +40 -0
  54. metadata +121 -39
  55. data/History.txt +0 -5
  56. data/Manifest.txt +0 -14
@@ -0,0 +1,8 @@
1
+ module Test::Unit::Assertions
2
+ def assert_false(boolean, message=nil)
3
+ _wrap_assertion do
4
+ assert_block("assert should not be called with a block.") { !block_given? }
5
+ assert_block(build_message(message, "<?> is not false.", boolean)) { !boolean }
6
+ end
7
+ end
8
+ end # module test
@@ -0,0 +1,74 @@
1
+ $htmlRoot = "file:///#{$myDir}/html/"
2
+
3
+ module Watir::UnitTest
4
+ # navigate the browser to the specified page in unittests/html
5
+ def goto_page page
6
+ new_url = self.class.html_root + page
7
+ browser.goto new_url
8
+ end
9
+ # navigate the browser to the specified page in unittests/html IF the browser is not already on that page.
10
+ def uses_page page # only works with IE
11
+ new_url = self.class.html_root + page
12
+ browser.goto new_url unless browser.url == new_url
13
+ end
14
+ def browser
15
+ $browser
16
+ end
17
+
18
+ def assert_class element, klass
19
+ assert_match(Regexp.new(klass, Regexp::IGNORECASE), element.class.to_s, "element class should be #{klass}; got #{element.class}")
20
+ end
21
+
22
+ @@filter = []
23
+ class << self
24
+ def filter
25
+ @@filter
26
+ end
27
+ def filter= proc
28
+ @@filter = proc
29
+ end
30
+ # Add a filter that excludes tests matching the provided block
31
+ def filter_out &block
32
+ @@filter << Proc.new do |test|
33
+ block.call(test) ? false : nil
34
+ end
35
+ end
36
+ def filter_out_tests_tagged tag
37
+ filter_out do |test|
38
+ test.tagged? tag
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ class Test::Unit::TestCase
45
+ include Watir::UnitTest
46
+ include Watir::Exception
47
+
48
+ class << self
49
+ def tags *names
50
+ @tags ||= []
51
+ @tags += names
52
+ end
53
+ def tag_method method_name, *tags
54
+ self.method_tags[method_name.to_s] = tags
55
+ end
56
+ def method_tags
57
+ @method_tags ||= Hash.new []
58
+ end
59
+ def html_root
60
+ return "file:///#{File.expand_path @html_dir}/" if @html_dir
61
+ $htmlRoot
62
+ end
63
+ def location path
64
+ @html_dir = File.join File.dirname(path), 'html'
65
+ end
66
+ end
67
+
68
+ def tagged? tag
69
+ self.class.tags.include?(tag) ||
70
+ self.class.method_tags[@method_name].include?(tag)
71
+ end
72
+
73
+ end
74
+
@@ -0,0 +1,32 @@
1
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
2
+ require 'unittests/setup'
3
+
4
+ class TC_Strong < Test::Unit::TestCase
5
+ include Watir::Exception
6
+ location __FILE__
7
+
8
+ def setup
9
+ uses_page "phrase_elements.html"
10
+ end
11
+
12
+ def test_exists
13
+ assert browser.strong(:id, "strong_id").exists?, "Could not find <strong> by :id"
14
+ assert browser.strong(:class, "strong_class").exists?, "Could not find <strong> by :class"
15
+ assert browser.strong(:xpath, "//strong[@id='strong_id']").exists?, "Could not find <strong> by :xpath"
16
+ assert browser.strong(:index, 1).exists?, "Could not find <strong> by :index"
17
+ assert browser.strong(:text, /this is a/).exists?, "Could not finr <strong> by :text"
18
+ end
19
+
20
+ def test_strong_iterator
21
+ assert_equal(2, browser.strongs.length)
22
+ assert_equal("this is a strong", browser.strongs[1].text)
23
+
24
+ browser.strongs.each_with_index do |strong, idx|
25
+ assert_equal(browser.strong(:index,idx+1).text, strong.text)
26
+ assert_equal(browser.strong(:index,idx+1).id, strong.id)
27
+ assert_equal(browser.strong(:index,idx+1).class_name , strong.class_name)
28
+ assert_equal(browser.strong(:index,idx+1).title, strong.title)
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
4
+ require 'unittests/setup'
5
+
6
+ class TC_Utf8 < Test::Unit::TestCase
7
+ location __FILE__
8
+
9
+ def setup
10
+ uses_page "utf8.html"
11
+ end
12
+
13
+ def test_is_correct_encoding
14
+ txt = browser.div(:id, 'utf8_string').text
15
+ if RUBY_VERSION =~ /^1\.8/
16
+ assert_equal("\303\246\303\270\303\245", txt)
17
+ else
18
+ assert(txt.force_encoding("UTF-8").valid_encoding?, "#{txt.inspect} is not valid UTF-8")
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+
@@ -0,0 +1,47 @@
1
+ # feature tests for Visibility
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
4
+ require 'unittests/setup'
5
+
6
+ class TC_Visibility < Test::Unit::TestCase
7
+ location __FILE__
8
+
9
+ def setup
10
+ uses_page "visibility.html"
11
+ end
12
+
13
+ # will check for divs which are visible on the screen (not inline style)
14
+ def test_initial_divs
15
+ assert_equal(true, browser.div(:id, "div1").visible?)
16
+ assert_equal(false, browser.div(:id, "div2").visible?)
17
+ assert_equal(false, browser.div(:id, "div3").visible?)
18
+ end
19
+
20
+ # will check for textfields which are visible on the screen (not inline style)
21
+ # if any textfields style displays true, it checks if all the parents are true else displays false
22
+ def test_initial_text_fields
23
+ assert_equal(true, browser.text_field(:id, "lgnId1").visible?)
24
+ assert_equal(false, browser.text_field(:id, "lgnId2").visible?)
25
+ assert_equal(false, browser.text_field(:id, "lgnId3").visible?)
26
+ end
27
+
28
+ # Check if the second div becomes visible (inline visibility test)
29
+ def test_make_visible_second_div
30
+ browser.link(:id, "div2vis").click
31
+ #wait_until { browser.div(:id, "div2").visible? }
32
+ assert_equal(true, browser.div(:id, "div2").visible? )
33
+ assert_equal(true, browser.text_field(:id, "lgnId2").visible? )
34
+ end
35
+
36
+ # Check if the second div becomes visible (inline Display block test)
37
+ def test_make_display_third_div
38
+ browser.link(:id, "div3blk").click
39
+ #wait_until { browser.div(:id, "div3").visible? }
40
+ assert_equal(true, browser.div(:id, "div3").visible? )
41
+ assert_equal(true, browser.text_field(:id, "lgnId3").visible? )
42
+ end
43
+
44
+ def test_hidden_element
45
+ assert_equal(false, browser.hidden(:id, 'hidden-type').visible? )
46
+ end
47
+ end
@@ -0,0 +1,40 @@
1
+ # feature tests for white space
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
4
+ require 'unittests/setup'
5
+
6
+ class TC_WhiteSpace < Test::Unit::TestCase
7
+ location __FILE__
8
+
9
+ def setup
10
+ uses_page "whitespace.html"
11
+ end
12
+
13
+ def test_text_with_nbsp
14
+ assert_equal 'Login', browser.link(:index => 1).text
15
+ end
16
+
17
+ def test_nbsp_beginning_and_end
18
+ assert browser.link(:text, 'Login').exists?
19
+ end
20
+
21
+ def test_single_nbsp
22
+ assert_equal "Test for nbsp.", browser.span(:id, 'single_nbsp').text
23
+ end
24
+
25
+ def test_multiple_spaces
26
+ assert_equal "Test for multiple spaces.", browser.span(:id, 'multiple_spaces').text
27
+ end
28
+
29
+ def test_multiple_spaces_access
30
+ assert_equal 'multiple_spaces', browser.span(:text, "Test for multiple spaces.").id
31
+ end
32
+
33
+ def test_space_tab
34
+ assert_equal "Test for space and tab.", browser.span(:id, 'space_tab').text
35
+ end
36
+
37
+ def test_space_w_cr
38
+ assert_equal "Test for space and cr.", browser.span(:id, 'space_w_cr').text
39
+ end
40
+ end
metadata CHANGED
@@ -1,7 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: commonwatir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.5
4
+ hash: 977940598
5
+ prerelease: true
6
+ segments:
7
+ - 1
8
+ - 6
9
+ - 6
10
+ - rc1
11
+ version: 1.6.6.rc1
5
12
  platform: ruby
6
13
  authors:
7
14
  - Bret Pettichord
@@ -9,46 +16,32 @@ autorequire:
9
16
  bindir: bin
10
17
  cert_chain: []
11
18
 
12
- date: 2009-11-10 00:00:00 -07:00
19
+ date: 2010-09-24 00:00:00 -06:00
13
20
  default_executable:
14
21
  dependencies:
15
22
  - !ruby/object:Gem::Dependency
16
23
  name: user-choices
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
20
27
  requirements:
21
28
  - - ">="
22
29
  - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
23
33
  version: "0"
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: hoe
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 2.3.3
34
- version:
35
- description: Common code used by Watir and FireWatir
36
- email:
37
- - bret@pettichord.com
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ description: Common library for Watir and FireWatir
37
+ email: bret@pettichord.com
38
38
  executables: []
39
39
 
40
40
  extensions: []
41
41
 
42
- extra_rdoc_files:
43
- - History.txt
44
- - Manifest.txt
45
- - README.txt
42
+ extra_rdoc_files: []
43
+
46
44
  files:
47
- - History.txt
48
- - Manifest.txt
49
- - README.txt
50
- - Rakefile
51
- - lib/watir.rb
52
45
  - lib/commonwatir.rb
53
46
  - lib/watir/assertions.rb
54
47
  - lib/watir/browser.rb
@@ -58,34 +51,123 @@ files:
58
51
  - lib/watir/options.rb
59
52
  - lib/watir/testcase.rb
60
53
  - lib/watir/waiter.rb
54
+ - lib/watir.rb
55
+ - Rakefile
56
+ - LICENSE
57
+ - CHANGES
58
+ - VERSION
59
+ - unittests/attach_to_existing_window_test.rb
60
+ - unittests/browser_test.rb
61
+ - unittests/buttons_test.rb
62
+ - unittests/dd_test.rb
63
+ - unittests/dl_test.rb
64
+ - unittests/dt_test.rb
65
+ - unittests/element_collections_test.rb
66
+ - unittests/em_test.rb
67
+ - unittests/form2_test.rb
68
+ - unittests/html/blankpage.html
69
+ - unittests/html/buttons1.html
70
+ - unittests/html/buttons2.html
71
+ - unittests/html/definition_lists.html
72
+ - unittests/html/emphasis.html
73
+ - unittests/html/entertainment_com.html
74
+ - unittests/html/frame_buttons.html
75
+ - unittests/html/images/button.jpg
76
+ - unittests/html/pass.html
77
+ - unittests/html/phrase_elements.html
78
+ - unittests/html/select_lists.html
79
+ - unittests/html/utf8.html
80
+ - unittests/html/visibility.html
81
+ - unittests/html/watir_unit_tests.css
82
+ - unittests/html/whitespace.html
83
+ - unittests/inspect_test.rb
84
+ - unittests/options.yml.example
85
+ - unittests/select_list_test.rb
86
+ - unittests/setup/browser.rb
87
+ - unittests/setup/capture_io_helper.rb
88
+ - unittests/setup/filter.rb
89
+ - unittests/setup/lib.rb
90
+ - unittests/setup/options.rb
91
+ - unittests/setup/testUnitAddons.rb
92
+ - unittests/setup/watir-unittest.rb
93
+ - unittests/setup.rb
94
+ - unittests/strong_test.rb
95
+ - unittests/utf8_test.rb
96
+ - unittests/visibility_test.rb
97
+ - unittests/whitespace_test.rb
61
98
  has_rdoc: true
62
99
  homepage: http://www.watir.com
63
100
  licenses: []
64
101
 
65
102
  post_install_message:
66
- rdoc_options:
67
- - --main
68
- - README.txt
103
+ rdoc_options: []
104
+
69
105
  require_paths:
70
106
  - lib
71
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
72
109
  requirements:
73
110
  - - ">="
74
111
  - !ruby/object:Gem::Version
112
+ hash: 3
113
+ segments:
114
+ - 0
75
115
  version: "0"
76
- version:
77
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
+ none: false
78
118
  requirements:
79
- - - ">="
119
+ - - ">"
80
120
  - !ruby/object:Gem::Version
81
- version: "0"
82
- version:
121
+ hash: 25
122
+ segments:
123
+ - 1
124
+ - 3
125
+ - 1
126
+ version: 1.3.1
83
127
  requirements: []
84
128
 
85
129
  rubyforge_project: wtr
86
- rubygems_version: 1.3.5
130
+ rubygems_version: 1.3.7
87
131
  signing_key:
88
132
  specification_version: 3
89
- summary: Common code used by Watir and FireWatir
90
- test_files: []
91
-
133
+ summary: Common library for Watir and FireWatir
134
+ test_files:
135
+ - unittests/attach_to_existing_window_test.rb
136
+ - unittests/browser_test.rb
137
+ - unittests/buttons_test.rb
138
+ - unittests/dd_test.rb
139
+ - unittests/dl_test.rb
140
+ - unittests/dt_test.rb
141
+ - unittests/element_collections_test.rb
142
+ - unittests/em_test.rb
143
+ - unittests/form2_test.rb
144
+ - unittests/html/blankpage.html
145
+ - unittests/html/buttons1.html
146
+ - unittests/html/buttons2.html
147
+ - unittests/html/definition_lists.html
148
+ - unittests/html/emphasis.html
149
+ - unittests/html/entertainment_com.html
150
+ - unittests/html/frame_buttons.html
151
+ - unittests/html/images/button.jpg
152
+ - unittests/html/pass.html
153
+ - unittests/html/phrase_elements.html
154
+ - unittests/html/select_lists.html
155
+ - unittests/html/utf8.html
156
+ - unittests/html/visibility.html
157
+ - unittests/html/watir_unit_tests.css
158
+ - unittests/html/whitespace.html
159
+ - unittests/inspect_test.rb
160
+ - unittests/options.yml.example
161
+ - unittests/select_list_test.rb
162
+ - unittests/setup/browser.rb
163
+ - unittests/setup/capture_io_helper.rb
164
+ - unittests/setup/filter.rb
165
+ - unittests/setup/lib.rb
166
+ - unittests/setup/options.rb
167
+ - unittests/setup/testUnitAddons.rb
168
+ - unittests/setup/watir-unittest.rb
169
+ - unittests/setup.rb
170
+ - unittests/strong_test.rb
171
+ - unittests/utf8_test.rb
172
+ - unittests/visibility_test.rb
173
+ - unittests/whitespace_test.rb
@@ -1,5 +0,0 @@
1
- === 0.0.1 / 2008-08-28
2
-
3
- * Created
4
-
5
-