celerity 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. data/History.txt +15 -1
  2. data/Manifest.txt +174 -0
  3. data/README.txt +19 -10
  4. data/config/hoe.rb +68 -0
  5. data/config/requirements.rb +15 -0
  6. data/lib/celerity.rb +14 -11
  7. data/lib/celerity/collections.rb +37 -8
  8. data/lib/celerity/container.rb +100 -3
  9. data/lib/celerity/disabled_element.rb +4 -2
  10. data/lib/celerity/element.rb +21 -8
  11. data/lib/celerity/element_collections.rb +4 -7
  12. data/lib/celerity/element_locator.rb +1 -0
  13. data/lib/celerity/elements/button.rb +6 -2
  14. data/lib/celerity/elements/file_field.rb +1 -1
  15. data/lib/celerity/elements/form.rb +1 -2
  16. data/lib/celerity/elements/frame.rb +0 -3
  17. data/lib/celerity/elements/image.rb +1 -4
  18. data/lib/celerity/elements/label.rb +1 -0
  19. data/lib/celerity/elements/link.rb +2 -0
  20. data/lib/celerity/elements/option.rb +1 -0
  21. data/lib/celerity/elements/radio_check.rb +3 -5
  22. data/lib/celerity/elements/select_list.rb +3 -10
  23. data/lib/celerity/elements/table.rb +8 -22
  24. data/lib/celerity/elements/table_body.rb +5 -11
  25. data/lib/celerity/elements/table_cell.rb +1 -0
  26. data/lib/celerity/elements/table_footer.rb +30 -0
  27. data/lib/celerity/elements/table_header.rb +30 -0
  28. data/lib/celerity/elements/table_row.rb +5 -3
  29. data/lib/celerity/elements/text_field.rb +18 -13
  30. data/lib/celerity/exception.rb +8 -8
  31. data/lib/celerity/extra/method_generator.rb +5 -2
  32. data/lib/celerity/htmlunit/htmlunit-2.2-SNAPSHOT.jar +0 -0
  33. data/lib/celerity/ie.rb +195 -141
  34. data/lib/celerity/non_control_elements.rb +30 -4
  35. data/lib/celerity/version.rb +1 -1
  36. data/lib/celerity/watir_compatibility.rb +62 -0
  37. data/setup.rb +0 -2
  38. data/spec/area_spec.rb +4 -1
  39. data/spec/areas_spec.rb +1 -1
  40. data/spec/button_spec.rb +35 -17
  41. data/spec/buttons_spec.rb +1 -1
  42. data/spec/checkbox_spec.rb +6 -4
  43. data/spec/checkboxes_spec.rb +1 -1
  44. data/spec/div_spec.rb +20 -19
  45. data/spec/divs_spec.rb +2 -2
  46. data/spec/element_spec.rb +13 -2
  47. data/spec/filefield_spec.rb +6 -3
  48. data/spec/filefields_spec.rb +1 -1
  49. data/spec/form_spec.rb +4 -1
  50. data/spec/forms_spec.rb +1 -1
  51. data/spec/frame_spec.rb +6 -2
  52. data/spec/hidden_spec.rb +8 -4
  53. data/spec/hiddens_spec.rb +1 -1
  54. data/spec/hn_spec.rb +86 -0
  55. data/spec/hns_spec.rb +41 -0
  56. data/spec/html/bug_duplicate_attributes.html +14 -0
  57. data/spec/html/bug_javascript_001.html +11 -0
  58. data/spec/html/forms_with_input_elements.html +11 -11
  59. data/spec/html/images.html +18 -15
  60. data/spec/html/latin1_text.html +16 -0
  61. data/spec/html/non_control_elements.html +28 -4
  62. data/spec/html/tables.html +3 -3
  63. data/spec/html/utf8_text.html +15 -0
  64. data/spec/htmlunit_spec.rb +27 -0
  65. data/spec/ie_spec.rb +47 -12
  66. data/spec/image_spec.rb +4 -7
  67. data/spec/images_spec.rb +3 -2
  68. data/spec/label_spec.rb +4 -3
  69. data/spec/labels_spec.rb +1 -1
  70. data/spec/li_spec.rb +11 -8
  71. data/spec/link_spec.rb +5 -1
  72. data/spec/links_spec.rb +2 -1
  73. data/spec/lis_spec.rb +3 -2
  74. data/spec/map_spec.rb +4 -1
  75. data/spec/maps_spec.rb +1 -1
  76. data/spec/meta_spec.rb +6 -0
  77. data/spec/ol_spec.rb +73 -0
  78. data/spec/ols_spec.rb +41 -0
  79. data/spec/option_spec.rb +129 -0
  80. data/spec/p_spec.rb +4 -1
  81. data/spec/pre_spec.rb +4 -1
  82. data/spec/pres_spec.rb +1 -1
  83. data/spec/ps_spec.rb +2 -1
  84. data/spec/radio_spec.rb +7 -19
  85. data/spec/radios_spec.rb +1 -1
  86. data/spec/select_list_spec.rb +19 -57
  87. data/spec/select_lists_spec.rb +3 -2
  88. data/spec/span_spec.rb +8 -5
  89. data/spec/spans_spec.rb +2 -1
  90. data/spec/spec_helper.rb +8 -43
  91. data/spec/table_bodies_spec.rb +17 -4
  92. data/spec/table_body_spec.rb +47 -16
  93. data/spec/table_cell_spec.rb +5 -3
  94. data/spec/table_cells_spec.rb +1 -1
  95. data/spec/table_footer_spec.rb +94 -0
  96. data/spec/table_footers_spec.rb +53 -0
  97. data/spec/table_header_spec.rb +94 -0
  98. data/spec/table_headers_spec.rb +53 -0
  99. data/spec/table_row_spec.rb +25 -4
  100. data/spec/table_rows_spec.rb +1 -1
  101. data/spec/table_spec.rb +22 -2
  102. data/spec/tables_spec.rb +2 -1
  103. data/spec/text_field_spec.rb +52 -20
  104. data/spec/text_fields_spec.rb +1 -1
  105. data/spec/ul_spec.rb +73 -0
  106. data/spec/uls_spec.rb +41 -0
  107. data/spec/watir_compatability_spec.rb +253 -0
  108. data/support/celerity_viewer/rubycocoa/CelerityViewer.icns +0 -0
  109. data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/classes.nib +37 -0
  110. data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/info.nib +19 -0
  111. data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/keyedobjects.nib +0 -0
  112. data/support/celerity_viewer/rubycocoa/Info.plist.erb +28 -0
  113. data/support/celerity_viewer/rubycocoa/MainController.rb +23 -0
  114. data/support/celerity_viewer/rubycocoa/README +94 -0
  115. data/support/celerity_viewer/rubycocoa/Rakefile +100 -0
  116. data/support/celerity_viewer/rubycocoa/distributed_viewer.rb +86 -0
  117. data/support/celerity_viewer/rubycocoa/main.m +7 -0
  118. data/support/celerity_viewer/rubycocoa/main.rb +27 -0
  119. data/support/spec_server.rb +64 -0
  120. data/tasks/benchmark.rake +1 -0
  121. data/tasks/rdoc.rake +4 -0
  122. data/tasks/rspec.rake +10 -3
  123. data/tasks/simple_ci.rake +94 -0
  124. data/tasks/specserver.rake +21 -0
  125. metadata +160 -114
  126. data/spec/table_bodies.rb +0 -40
  127. data/tasks/testserver.rake +0 -32
@@ -11,7 +11,7 @@
11
11
  <caption>Income tax information for Gregory House and Hugh Laurie</caption>
12
12
  <colgroup width="25%" align="left"></colgroup>
13
13
  <colgroup width="25%" span="3" align="right"></colgroup>
14
- <thead>
14
+ <thead id="tax_headers">
15
15
  <tr style="border-bottom: 1px solid black;" class="dark">
16
16
  <th></th>
17
17
  <th id="before_tax" axis="cash" abbr="Before tax">Before income tax</th>
@@ -19,7 +19,7 @@
19
19
  <th id="after_tax" axis="cash" abbr="After tax">After income tax</th>
20
20
  </tr>
21
21
  </thead>
22
- <tfoot>
22
+ <tfoot id="tax_totals">
23
23
  <tr class="dark">
24
24
  <th axis="sum">Sum</th>
25
25
  <td headers="before_tax">24 349</td>
@@ -47,7 +47,7 @@
47
47
  <td headers="after_tax p2 d1">4 821</td>
48
48
  </tr>
49
49
  </tbody>
50
- <tbody name="second">
50
+ <tbody name="second" id="second">
51
51
  <tr>
52
52
  <th id="d2" axis="date" scope="rowgroup">April 2008</th>
53
53
  <th></th>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ UTF-8
8
+ </title>
9
+ </head>
10
+ <body>
11
+ <p>
12
+ æåø
13
+ </p>
14
+ </body>
15
+ </html>
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "HtmlUnit bugs" do
4
+
5
+ before :all do
6
+ @browser = IE.new
7
+ add_spec_checker(@browser)
8
+ end
9
+
10
+ describe "HtmlUnit bug 1968686: https://sourceforge.net/tracker/index.php?func=detail&aid=1968686&group_id=47038&atid=448266" do
11
+ # it "should not raise NativeException: java.lang.StackOverflowError when going to a page where Javascripts prints a <body> tag inside another <body> tag" do
12
+ # lambda { @browser.goto(TEST_HOST + "/bug_javascript_001.html") }.should_not raise_error(NativeException)
13
+ # end
14
+ end
15
+
16
+ describe "HtmlUnit bug 1968708: https://sourceforge.net/tracker/index.php?func=detail&aid=1968708&group_id=47038&atid=448266" do
17
+ it "should only consider the first attribute if there are duplicate attributes" do
18
+ @browser.goto(TEST_HOST + "/bug_duplicate_attributes.html")
19
+ @browser.text_field(:index, 1).id.should == "org_id"
20
+ end
21
+ end
22
+
23
+ after :all do
24
+ @browser.close
25
+ end
26
+
27
+ end
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "IE" do
3
+ describe IE do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -37,7 +37,20 @@ describe "IE" do
37
37
  describe "#text" do
38
38
  it "should return the text of the page" do
39
39
  @browser.goto(TEST_HOST + "/non_control_elements.html")
40
- @browser.text.include?("Dubito, ergo cogito, ergo sum.").should be_true
40
+ @browser.text.should include("Dubito, ergo cogito, ergo sum.")
41
+ end
42
+ it "should return the text also if the content-type is text/plain" do
43
+ # more specs for text/plain? what happens if we call other methods?
44
+ @browser.goto(TEST_HOST + "/plain_text")
45
+ @browser.text.strip.should == 'This is text/plain'
46
+ end
47
+ it "should return text in the correct charset (utf-8)" do
48
+ @browser.goto(TEST_HOST + "/utf8_text.html")
49
+ @browser.text.strip.should == "\303\246\303\245\303\270"
50
+ end
51
+ it "should return text in the correct charset (latin-1)" do
52
+ @browser.goto(TEST_HOST + "/latin1_text.html")
53
+ @browser.text.strip.should == "\370\345\346"
41
54
  end
42
55
  end
43
56
 
@@ -59,14 +72,36 @@ describe "IE" do
59
72
  end
60
73
  end
61
74
 
62
- describe "#base_url" do
63
- it "should return the base URL of the current page" do
75
+ # Show methods
76
+ describe "#method_missing" do
77
+ it "should return all div elements on the page in a human readable format" do
64
78
  @browser.goto(TEST_HOST + "/non_control_elements.html")
65
- @browser.base_url.should == "http://localhost"
79
+ temp_stdout = StringIO.new
80
+ old_stdout = $stdout
81
+ $stdout = temp_stdout
82
+ begin
83
+ @browser.show_divs
84
+ ensure
85
+ $stdout = old_stdout
86
+ end
87
+ temp_stdout.string.should ==
88
+ 'Found 8 divs
89
+ 1:
90
+ 2: id="outer_container"
91
+ 3: id="header" title="Header and primary navigation" class="profile"
92
+ 4: id="promo" name="invalid_attribute" value="invalid_attribute"
93
+ 5: id="content"
94
+ 6: id="best_language" onclick="this.innerHTML = \'Ruby!\'" style="color: red; text-decoration: underline; cursor: pointer;"
95
+ 7: id="html_test" class="some_class" title="This is a title"
96
+ 8: id="footer" title="Closing remarks" class="profile"
97
+ '
98
+ end
99
+ it "should raise NoMethodError if the collection does not exist" do
100
+ @browser.goto(TEST_HOST + "/non_control_elements.html")
101
+ lambda { @browser.show_no_such_collection }.should raise_error(NoMethodError)
66
102
  end
67
103
  end
68
104
 
69
-
70
105
  # Manipulation methods
71
106
  describe ".start" do
72
107
  it "should go to the given URL and return an instance of itself" do
@@ -77,6 +112,10 @@ describe "IE" do
77
112
  end
78
113
 
79
114
  describe "#goto" do
115
+ # waiting for JRuby OpenSSL
116
+ # it "should handle HTTPS" do
117
+ # pending
118
+ # end
80
119
  it "should go to the given url without raising errors" do
81
120
  lambda { @browser.goto(TEST_HOST + "/non_control_elements.html") }.should_not raise_error
82
121
  end
@@ -118,23 +157,19 @@ describe "IE" do
118
157
  before :each do
119
158
  @browser.goto(TEST_HOST + "/non_control_elements.html")
120
159
  end
121
-
122
160
  it "should raise ArgumentError when called with no or wrong arguments" do
123
161
  lambda { @browser.contains_text }.should raise_error(ArgumentError)
124
162
  lambda { @browser.contains_text(nil) }.should raise_error(ArgumentError)
125
163
  lambda { @browser.contains_text(42) }.should raise_error(ArgumentError)
126
164
  end
127
-
128
165
  it "should return the index if the given text exists" do
129
166
  @browser.contains_text('Dubito, ergo cogito, ergo sum.').should be_instance_of(Fixnum)
130
167
  @browser.contains_text(/Dubito.*sum./).should_not be_nil
131
168
  end
132
-
133
169
  it "should return nil if the text doesn't exist" do
134
170
  @browser.contains_text('no_such_text').should be_nil
135
171
  @browser.contains_text(/no_such_text/).should be_nil
136
172
  end
137
-
138
173
  it "should not raise error on a blank page" do
139
174
  @browser = IE.new
140
175
  lambda { @browser.contains_text('') }.should_not raise_error
@@ -147,7 +182,8 @@ describe "IE" do
147
182
  end
148
183
  it "should run the given proc on each page load" do
149
184
  output = ''
150
- @browser.add_checker(Proc.new { |ie| output << ie.text })
185
+ proc = Proc.new { |ie| output << ie.text }
186
+ @browser.add_checker(proc)
151
187
  @browser.goto(TEST_HOST + "/non_control_elements.html")
152
188
  output.should include('Dubito, ergo cogito, ergo sum')
153
189
  end
@@ -166,7 +202,6 @@ describe "IE" do
166
202
  @browser.add_checker(checker)
167
203
  @browser.goto(TEST_HOST + "/non_control_elements.html")
168
204
  output.should include('Dubito, ergo cogito, ergo sum')
169
-
170
205
  @browser.disable_checker(checker)
171
206
  @browser.goto(TEST_HOST + "/non_control_elements.html")
172
207
  output.should include('Dubito, ergo cogito, ergo sum')
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Image" do
3
+ describe Image do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -24,6 +24,9 @@ describe "Image" do
24
24
  @browser.image(:alt, /cir/).should exist
25
25
  @browser.image(:title, 'Circle').should exist
26
26
  end
27
+ it "should return true if the element exists (default how = :id)" do
28
+ @browser.image("images/circle.jpg").should exist
29
+ end
27
30
  it "should return false when the image exists" do
28
31
  @browser.image(:id, 'no_such_id').should_not exist
29
32
  @browser.image(:id, /no_such_id/).should_not exist
@@ -171,12 +174,6 @@ describe "Image" do
171
174
  end
172
175
  end
173
176
 
174
- describe "#html" do
175
- it "should return the image element as a string of html" do
176
- @browser.image(:id, 'triangle').html.chomp.should == '<img src="images/triangle.jpg" id="triangle" usemap="#triangle_map" />'
177
- end
178
- end
179
-
180
177
  describe "#save" do
181
178
  it "should save an image to file" do
182
179
  file = "sample.img.dat"
@@ -1,6 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Images" do
3
+ describe Images do
4
+
4
5
  before :all do
5
6
  @browser = IE.new
6
7
  add_spec_checker(@browser)
@@ -12,7 +13,7 @@ describe "Images" do
12
13
 
13
14
  describe "#length" do
14
15
  it "should return the number of images" do
15
- @browser.images.length.should == 8
16
+ @browser.images.length.should == 9
16
17
  end
17
18
  end
18
19
 
@@ -1,8 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- # TODO: specs for exceptions
4
-
5
- describe "Label" do
3
+ describe Label do
6
4
 
7
5
  before :all do
8
6
  @browser = IE.new
@@ -23,6 +21,9 @@ describe "Label" do
23
21
  @browser.label(:index, 1).should exist
24
22
  @browser.label(:xpath, "//label[@id='first_label']").should exist
25
23
  end
24
+ it "should return true if the element exists (default how = :text)" do
25
+ @browser.label("First name").should exist
26
+ end
26
27
  it "should return false if the element does not exist" do
27
28
  @browser.label(:id, 'no_such_id').should_not exist
28
29
  @browser.label(:id, /no_such_id/).should_not exist
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Labels" do
3
+ describe Labels do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Li" do
3
+ describe Li do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -13,7 +13,7 @@ describe "Li" do
13
13
 
14
14
  # Exists method
15
15
  describe "#exist?" do
16
- it "should return true if the 'p' exists" do
16
+ it "should return true if the 'li' exists" do
17
17
  @browser.li(:id, "non_link_1").should exist
18
18
  @browser.li(:id, /non_link_1/).should exist
19
19
  @browser.li(:text, "Non-link 3").should exist
@@ -23,7 +23,10 @@ describe "Li" do
23
23
  @browser.li(:index, 1).should exist
24
24
  @browser.li(:xpath, "//li[@id='non_link_1']").should exist
25
25
  end
26
- it "should return false if the 'p' doesn't exist" do
26
+ it "should return true if the element exists (default how = :id)" do
27
+ @browser.li("non_link_1").should exist
28
+ end
29
+ it "should return false if the 'li' doesn't exist" do
27
30
  @browser.li(:id, "no_such_id").should_not exist
28
31
  @browser.li(:id, /no_such_id/).should_not exist
29
32
  @browser.li(:text, "no_such_text").should_not exist
@@ -49,7 +52,7 @@ describe "Li" do
49
52
  it "should return an empty string if the element exists and the attribute doesn't" do
50
53
  @browser.li(:index, 1).class_name.should == ''
51
54
  end
52
- it "should raise UnknownObjectException if the p doesn't exist" do
55
+ it "should raise UnknownObjectException if the li doesn't exist" do
53
56
  lambda { @browser.li(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
54
57
  end
55
58
  end
@@ -61,7 +64,7 @@ describe "Li" do
61
64
  it "should return an empty string if the element exists and the attribute doesn't" do
62
65
  @browser.li(:index, 1).id.should == ''
63
66
  end
64
- it "should raise UnknownObjectException if the p doesn't exist" do
67
+ it "should raise UnknownObjectException if the li doesn't exist" do
65
68
  lambda { @browser.li(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
66
69
  lambda { @browser.li(:index, 1337).id }.should raise_error(UnknownObjectException)
67
70
  end
@@ -74,7 +77,7 @@ describe "Li" do
74
77
  it "should return an empty string if the element exists and the attribute doesn't" do
75
78
  @browser.li(:index, 1).title.should == ''
76
79
  end
77
- it "should raise UnknownObjectException if the p doesn't exist" do
80
+ it "should raise UnknownObjectException if the li doesn't exist" do
78
81
  lambda { @browser.li(:id, 'no_such_id').title }.should raise_error( UnknownObjectException)
79
82
  lambda { @browser.li(:xpath, "//li[@id='no_such_id']").title }.should raise_error( UnknownObjectException)
80
83
  end
@@ -87,7 +90,7 @@ describe "Li" do
87
90
  it "should return an empty string if the element doesn't contain any text" do
88
91
  @browser.li(:index, 1).text.should == ''
89
92
  end
90
- it "should raise UnknownObjectException if the p doesn't exist" do
93
+ it "should raise UnknownObjectException if the li doesn't exist" do
91
94
  lambda { @browser.li(:id, 'no_such_id').text }.should raise_error( UnknownObjectException)
92
95
  lambda { @browser.li(:xpath , "//li[@id='no_such_id']").text }.should raise_error( UnknownObjectException)
93
96
  end
@@ -102,7 +105,7 @@ describe "Li" do
102
105
  " title: This is not a link!\n" +
103
106
  " text: Non-link 1"
104
107
  end
105
- it "should raise UnknownObjectException if the p doesn't exist" do
108
+ it "should raise UnknownObjectException if the li doesn't exist" do
106
109
  lambda { @browser.li(:xpath, "//li[@id='no_such_id']").to_s }.should raise_error( UnknownObjectException)
107
110
  end
108
111
  end
@@ -1,6 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Link" do
3
+ describe Link do
4
+
4
5
  before :all do
5
6
  @browser = IE.new
6
7
  add_spec_checker(@browser)
@@ -26,6 +27,9 @@ describe "Link" do
26
27
  @browser.link(:index, 2).should exist
27
28
  @browser.link(:xpath, "//a[@id='link_2']").should exist
28
29
  end
30
+ it "should return true if the element exists (default how = :href)" do
31
+ @browser.link(/input_elements/).should exist
32
+ end
29
33
  it "should return false if the link doesn't exist" do
30
34
  @browser.link(:id, 'no_such_id').should_not exist
31
35
  @browser.link(:id, /no_such_id/).should_not exist
@@ -1,6 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Links" do
3
+ describe Links do
4
+
4
5
  before :all do
5
6
  @browser = IE.new
6
7
  add_spec_checker(@browser)
@@ -1,6 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Lis" do
3
+ describe Lis do
4
+
4
5
  before :all do
5
6
  @browser = IE.new
6
7
  add_spec_checker(@browser)
@@ -12,7 +13,7 @@ describe "Lis" do
12
13
 
13
14
  describe "#length" do
14
15
  it "should return the number of lis" do
15
- @browser.lis.length.should == 7
16
+ @browser.lis.length.should == 18
16
17
  end
17
18
  end
18
19
 
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "P" do
3
+ describe Map do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -21,6 +21,9 @@ describe "P" do
21
21
  @browser.map(:index, 1).should exist
22
22
  @browser.map(:xpath, "//map[@id='triangle_map']").should exist
23
23
  end
24
+ it "should return true if the element exists (default how = :id)" do
25
+ @browser.map("triangle_map").should exist
26
+ end
24
27
  it "should return false if the 'map' doesn't exist" do
25
28
  @browser.map(:id, "no_such_id").should_not exist
26
29
  @browser.map(:id, /no_such_id/).should_not exist
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
2
 
3
- describe "Maps" do
3
+ describe Maps do
4
4
 
5
5
  before :all do
6
6
  @browser = IE.new
@@ -0,0 +1,6 @@
1
+ describe Celerity do
2
+ it "should raise error if run on MRI" do
3
+ `ruby #{File.dirname(__FILE__) + "/../lib/celerity"}`
4
+ $?.should_not be_success
5
+ end
6
+ end
@@ -0,0 +1,73 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe Ul do
4
+
5
+ before :all do
6
+ @browser = IE.new
7
+ add_spec_checker(@browser)
8
+ end
9
+
10
+ before :each do
11
+ @browser.goto(TEST_HOST + "/non_control_elements.html")
12
+ end
13
+
14
+ # Exists method
15
+ describe "#exist?" do
16
+ it "should return true if the 'ol' exists" do
17
+ @browser.ol(:id, "favorite_compounds").should exist
18
+ @browser.ol(:id, /favorite_compounds/).should exist
19
+ @browser.ol(:index, 1).should exist
20
+ @browser.ol(:xpath, "//ol[@id='favorite_compounds']").should exist
21
+ end
22
+ it "should return true if the element exists (default how = :id)" do
23
+ @browser.ol("favorite_compounds").should exist
24
+ end
25
+ it "should return false if the 'ol' doesn't exist" do
26
+ @browser.ol(:id, "no_such_id").should_not exist
27
+ @browser.ol(:id, /no_such_id/).should_not exist
28
+ @browser.ol(:text, "no_such_text").should_not exist
29
+ @browser.ol(:text, /no_such_text/).should_not exist
30
+ @browser.ol(:class, "no_such_class").should_not exist
31
+ @browser.ol(:class, /no_such_class/).should_not exist
32
+ @browser.ol(:index, 1337).should_not exist
33
+ @browser.ol(:xpath, "//ol[@id='no_such_id']").should_not exist
34
+ end
35
+ it "should raise ArgumentError when 'what' argument is invalid" do
36
+ lambda { @browser.ol(:id, 3.14).exists? }.should raise_error(ArgumentError)
37
+ end
38
+ it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
39
+ lambda { @browser.ol(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
40
+ end
41
+ end
42
+
43
+ # Attribute methods
44
+ describe "#class_name" do
45
+ it "should return the class attribute" do
46
+ @browser.ol(:id, 'favorite_compounds').class_name.should == 'chemistry'
47
+ end
48
+ it "should return an empty string if the element exists and the attribute doesn't" do
49
+ @browser.ol(:index, 2).class_name.should == ''
50
+ end
51
+ it "should raise UnknownObjectException if the ol doesn't exist" do
52
+ lambda { @browser.ol(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
53
+ end
54
+ end
55
+
56
+ describe "#id" do
57
+ it "should return the id attribute" do
58
+ @browser.ol(:class, 'chemistry').id.should == "favorite_compounds"
59
+ end
60
+ it "should return an empty string if the element exists and the attribute doesn't" do
61
+ @browser.ol(:index, 2).id.should == ''
62
+ end
63
+ it "should raise UnknownObjectException if the ol doesn't exist" do
64
+ lambda { @browser.ol(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
65
+ lambda { @browser.ol(:index, 1337).id }.should raise_error(UnknownObjectException)
66
+ end
67
+ end
68
+
69
+ after :all do
70
+ @browser.close
71
+ end
72
+
73
+ end