commonwatir 1.6.5 → 1.6.6.rc1

Sign up to get free protection for your applications and to get access to all the features.
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
-