cornucopia 0.1.34 → 0.1.35

Sign up to get free protection for your applications and to get access to all the features.
@@ -38,7 +38,7 @@ if Cucumber::VERSION.split[0].to_i >= 2
38
38
  Cornucopia::Util::TestHelper.instance.record_test_start(test_name)
39
39
 
40
40
  seed_value = Cornucopia::Util::Configuration.seed ||
41
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
41
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
42
42
 
43
43
  scenario.instance_variable_set :@seed_value, seed_value
44
44
 
@@ -101,7 +101,7 @@ else
101
101
  Cornucopia::Util::TestHelper.instance.record_test_start(test_name)
102
102
 
103
103
  seed_value = Cornucopia::Util::Configuration.seed ||
104
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
104
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
105
105
 
106
106
  scenario.instance_variable_set :@seed_value, seed_value
107
107
 
@@ -65,7 +65,7 @@ RSpec.configure do |config|
65
65
  puts "Cornucopia::Hook::before group" if Cornucopia::Util::Configuration.benchmark
66
66
 
67
67
  Cornucopia::RSpecHelper.instance.context_seed_value = Cornucopia::Util::Configuration.context_seed ||
68
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
68
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
69
69
 
70
70
  srand(Cornucopia::RSpecHelper.instance.context_seed_value)
71
71
  end
@@ -106,7 +106,7 @@ RSpec.configure do |config|
106
106
  Cornucopia::Util::TestHelper.instance.record_test_start(test_example.full_description)
107
107
 
108
108
  Cornucopia::RSpecHelper.instance.seed_value = Cornucopia::Util::Configuration.seed ||
109
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
109
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
110
110
 
111
111
  srand(Cornucopia::RSpecHelper.instance.seed_value)
112
112
 
@@ -10,7 +10,7 @@ Spinach.hooks.around_scenario do |scenario_data, step_definitions, &block|
10
10
  Cornucopia::Util::TestHelper.instance.spinach_reported_error = false
11
11
  Cornucopia::Util::TestHelper.instance.spinach_running_scenario = scenario_data
12
12
  seed_value = Cornucopia::Util::Configuration.seed ||
13
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
13
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
14
14
 
15
15
  scenario_data.instance_variable_set :@seed_value, seed_value
16
16
 
@@ -1,3 +1,3 @@
1
1
  module Cornucopia
2
- VERSION = "0.1.34"
2
+ VERSION = "0.1.35"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path('../boot', __FILE__)
2
2
 
3
3
  # Pick the frameworks you want:
4
- require "active_record/railtie"
4
+ # require "active_record/railtie"
5
5
  require "action_controller/railtie"
6
6
  require "action_mailer/railtie"
7
7
  require "sprockets/railtie"
@@ -1,37 +1,37 @@
1
- # SQLite version 3.x
2
- # gem install sqlite3
1
+ ## SQLite version 3.x
2
+ ## gem install sqlite3
3
+ ##
4
+ ## Ensure the SQLite 3 gem is defined in your Gemfile
5
+ ## gem 'sqlite3'
6
+ #development:
7
+ # adapter: mysql2
8
+ # encoding: utf8
9
+ # reconnect: false
10
+ # database: cornucopia_dev
11
+ # pool: 5
12
+ # username: root
13
+ # password: lp!8288178
14
+ # socket: /tmp/mysql.sock
3
15
  #
4
- # Ensure the SQLite 3 gem is defined in your Gemfile
5
- # gem 'sqlite3'
6
- development:
7
- adapter: mysql2
8
- encoding: utf8
9
- reconnect: false
10
- database: cornucopia_dev
11
- pool: 5
12
- username: root
13
- password: lp!8288178
14
- socket: /tmp/mysql.sock
15
-
16
- # Warning: The database defined as "test" will be erased and
17
- # re-generated from your development database when you run "rake".
18
- # Do not set this db to the same as development or production.
19
- test:
20
- adapter: mysql2
21
- encoding: utf8
22
- reconnect: false
23
- database: cornucopia_test
24
- pool: 5
25
- username: root
26
- password: lp!8288178
27
- socket: /tmp/mysql.sock
28
-
29
- production:
30
- adapter: mysql2
31
- encoding: utf8
32
- reconnect: false
33
- database: cornucopia_production
34
- pool: 5
35
- username: root
36
- password: lp!8288178
37
- socket: /tmp/mysql.sock
16
+ ## Warning: The database defined as "test" will be erased and
17
+ ## re-generated from your development database when you run "rake".
18
+ ## Do not set this db to the same as development or production.
19
+ #test:
20
+ # adapter: mysql2
21
+ # encoding: utf8
22
+ # reconnect: false
23
+ # database: cornucopia_test
24
+ # pool: 5
25
+ # username: root
26
+ # password: lp!8288178
27
+ # socket: /tmp/mysql.sock
28
+ #
29
+ #production:
30
+ # adapter: mysql2
31
+ # encoding: utf8
32
+ # reconnect: false
33
+ # database: cornucopia_production
34
+ # pool: 5
35
+ # username: root
36
+ # password: lp!8288178
37
+ # socket: /tmp/mysql.sock
@@ -67,7 +67,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
67
67
  test_page.contents do |contents_frame|
68
68
  expect(contents_frame.errors.length).to be == 1
69
69
  expect(contents_frame.errors[0].name.text).to be == "An error occurred while processing \"find\":"
70
- expect(contents_frame.errors[0].tables[0].rows.length).to be == 7
70
+ expect(contents_frame.errors[0].tables[0].rows.length).to be == 5
71
71
  expect(contents_frame.errors[0].tables[0].rows[0].labels[0].text).to be == "function_name"
72
72
  expect(contents_frame.errors[0].tables[0].rows[0].values[0].text).to be == ":find"
73
73
  expect(contents_frame.errors[0].tables[0].rows[1].labels[0].text).to be == "args[0]"
@@ -79,12 +79,12 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
79
79
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[0].values[0].text).to be == ":css"
80
80
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].labels[0].text).to be == "1"
81
81
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].values[0].text).to be == "#base-contentss"
82
- expect(contents_frame.errors[0].tables[0].rows[5].labels[0].text).to be == "exception"
83
- expect(contents_frame.errors[0].tables[0].rows[5].values[0].text).to be == "Unable to find css \"#base-contentss\""
84
- expect(contents_frame.errors[0].tables[0].rows[6].labels[0].text).to be == "backtrace"
85
- expect(contents_frame.errors[0].tables[0].rows[6].expands[0]).to be
86
- expect(contents_frame.errors[0].tables[0].rows[6].mores[0]).to be
87
- expect(contents_frame.errors[0].tables[0].rows[6].values[0].text.length).to be > 0
82
+ expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "exception"
83
+ expect(contents_frame.errors[0].tables[0].rows[3].values[0].text).to be == "Unable to find css \"#base-contentss\""
84
+ expect(contents_frame.errors[0].tables[0].rows[4].labels[0].text).to be == "backtrace"
85
+ expect(contents_frame.errors[0].tables[0].rows[4].expands[0]).to be
86
+ expect(contents_frame.errors[0].tables[0].rows[4].mores[0]).to be
87
+ expect(contents_frame.errors[0].tables[0].rows[4].values[0].text.length).to be > 0
88
88
 
89
89
  contents_frame.errors[0].more_details.show_hide.click
90
90
  expect(contents_frame.errors[0].more_details.details.rows.length).to be == 10
@@ -121,7 +121,9 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
121
121
 
122
122
  index_page.load base_folder: "sample_report"
123
123
 
124
+ total_tests = 0
124
125
  index_page.contents do |contents_frame|
126
+ total_tests = contents_frame.all("a").length
125
127
  tester = Cornucopia::Capybara::FinderDiagnostics::FindAction.new(contents_frame, {}, {}, :find, "a")
126
128
  expect(tester).to receive(:perform_analysis).and_call_original
127
129
 
@@ -132,12 +134,13 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
132
134
  report_page.load(report_name: "cornucopia_report", base_folder: "cornucopia_report")
133
135
 
134
136
  expect(report_page.tests.length).to be >= 1
137
+
135
138
  report_page.tests[0].click
136
139
  report_page.displayed_test do |test_page|
137
140
  test_page.contents do |contents_frame|
138
141
  expect(contents_frame.errors.length).to be == 1
139
142
  expect(contents_frame.errors[0].name.text).to be == "An error occurred while processing \"find\":"
140
- expect(contents_frame.errors[0].tables[0].rows.length).to be == 7
143
+ expect(contents_frame.errors[0].tables[0].rows.length).to be == 5
141
144
  expect(contents_frame.errors[0].tables[0].rows[0].labels[0].text).to be == "function_name"
142
145
  expect(contents_frame.errors[0].tables[0].rows[0].values[0].text).to be == ":find"
143
146
  expect(contents_frame.errors[0].tables[0].rows[1].labels[0].text).to be == "args[0]"
@@ -149,42 +152,42 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
149
152
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[0].values[0].text).to be == ":css"
150
153
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].labels[0].text).to be == "1"
151
154
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].values[0].text).to be == "a"
152
- expect(contents_frame.errors[0].tables[0].rows[5].labels[0].text).to be == "exception"
153
- expect(contents_frame.errors[0].tables[0].rows[5].values[0].text).to match /Ambiguous match, found .+ elements matching css "a"/
154
- expect(contents_frame.errors[0].tables[0].rows[6].labels[0].text).to be == "backtrace"
155
- expect(contents_frame.errors[0].tables[0].rows[6].expands[0]).to be
156
- expect(contents_frame.errors[0].tables[0].rows[6].mores[0]).to be
157
- expect(contents_frame.errors[0].tables[0].rows[6].values[0].text.length).to be > 0
155
+ expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "exception"
156
+ expect(contents_frame.errors[0].tables[0].rows[3].values[0].text).to match /Ambiguous match, found .+ elements matching css "a"/
157
+ expect(contents_frame.errors[0].tables[0].rows[4].labels[0].text).to be == "backtrace"
158
+ expect(contents_frame.errors[0].tables[0].rows[4].expands[0]).to be
159
+ expect(contents_frame.errors[0].tables[0].rows[4].mores[0]).to be
160
+ expect(contents_frame.errors[0].tables[0].rows[4].values[0].text.length).to be > 0
158
161
 
159
162
  contents_frame.errors[0].more_details.show_hide.click
160
- num_rows = contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows.length
161
- expect(contents_frame.errors[0].more_details.details.rows.length).to be == 12 + num_rows
163
+ expect(contents_frame.errors[0].more_details.details.rows.length).to be == 12
162
164
  expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "name"
163
165
  expect(contents_frame.errors[0].more_details.details.rows[0].values[0].text).to be == "Capybara::Ambiguous"
164
166
  expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "all_elements"
165
- expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables.length).to be > 1
166
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 2].labels[0].text).to be == "guessed_types"
167
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 2].values[0].text).to be
168
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 3].labels[0].text).to be == "support_options"
169
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 3].values[0].text).to be == "{:__cornucopia_no_analysis=>true, :__cornucopia_retry_with_found=>nil}"
170
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 4].labels[0].text).to be == "page_url"
171
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 4].values[0].text).to match /report_contents\.html/
172
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 5].labels[0].text).to be == "title"
173
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 5].values[0].text).to be == "Diagnostics report list"
174
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 6].labels[0].text).to be == "screen_shot"
175
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 6].value_images[0][:src]).to match /\/screen_shot\.png/
176
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 7].labels[0].text).to be == "html_file"
177
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 7].value_links[0][:href]).
167
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables.length).to eq 1
168
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows.length).to eq total_tests
169
+ expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "guessed_types"
170
+ expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to be
171
+ expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "support_options"
172
+ expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).to be == "{:__cornucopia_no_analysis=>true, :__cornucopia_retry_with_found=>nil}"
173
+ expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "page_url"
174
+ expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).to match /report_contents\.html/
175
+ expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "title"
176
+ expect(contents_frame.errors[0].more_details.details.rows[5].values[0].text).to be == "Diagnostics report list"
177
+ expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "screen_shot"
178
+ expect(contents_frame.errors[0].more_details.details.rows[6].value_images[0][:src]).to match /\/screen_shot\.png/
179
+ expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "html_file"
180
+ expect(contents_frame.errors[0].more_details.details.rows[7].value_links[0][:href]).
178
181
  to match /html_save_file\/__cornucopia_save_page\.html/
179
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 8].labels[0].text).to be == "html_frame"
180
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 8].value_frames[0][:src]).
182
+ expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "html_frame"
183
+ expect(contents_frame.errors[0].more_details.details.rows[8].value_frames[0][:src]).
181
184
  to match /page_dump\.html/
182
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 9].labels[0].text).to be == "html_source"
183
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 9].value_textareas[0].text).to be
184
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 10].labels[0].text).to be == "page_height"
185
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 10].values[0].text).to be
186
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 11].labels[0].text).to be == "page_width"
187
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 11].values[0].text).to be
185
+ expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "html_source"
186
+ expect(contents_frame.errors[0].more_details.details.rows[9].value_textareas[0].text).to be
187
+ expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "page_height"
188
+ expect(contents_frame.errors[0].more_details.details.rows[10].values[0].text).to be
189
+ expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to be == "page_width"
190
+ expect(contents_frame.errors[0].more_details.details.rows[11].values[0].text).to be
188
191
  end
189
192
  end
190
193
  end
@@ -214,7 +217,9 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
214
217
 
215
218
  index_page.load base_folder: "sample_report"
216
219
 
220
+ total_tests = 0
217
221
  index_page.contents do |contents_frame|
222
+ total_tests = contents_frame.all("a").length
218
223
  diag = Cornucopia::Capybara::FinderDiagnostics::FindAction.
219
224
  new(contents_frame, {}, {}, :all, :css, "a", visible: true)
220
225
  expect(Cornucopia::Capybara::FinderDiagnostics::FindAction).
@@ -235,6 +240,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
235
240
  report_page.load(report_name: "cornucopia_report", base_folder: "cornucopia_report")
236
241
 
237
242
  expect(report_page.tests.length).to be >= 1
243
+
238
244
  report_page.tests[0].click
239
245
  report_page.displayed_test do |test_page|
240
246
  test_page.contents do |contents_frame|
@@ -242,7 +248,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
242
248
  # this line is the same as the next one. I added this line to test a line in the site-prims extentions.
243
249
  expect(contents_frame.errors[0].find("p").text).to be == "Diagnostic report on \"all\":"
244
250
  expect(contents_frame.errors[0].name.text).to be == "Diagnostic report on \"all\":"
245
- expect(contents_frame.errors[0].tables[0].rows.length).to be == 7
251
+ expect(contents_frame.errors[0].tables[0].rows.length).to be == 4
246
252
  expect(contents_frame.errors[0].tables[0].rows[0].labels[0].text).to be == "function_name"
247
253
  expect(contents_frame.errors[0].tables[0].rows[0].values[0].text).to be == ":all"
248
254
  expect(contents_frame.errors[0].tables[0].rows[1].labels[0].text).to be == "args[0]"
@@ -254,45 +260,45 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
254
260
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[0].values[0].text).to be == ":css"
255
261
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].labels[0].text).to be == "1"
256
262
  expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].values[0].text).to be == "a"
257
- expect(contents_frame.errors[0].tables[0].rows[5].labels[0].text).to be == "options"
258
- expect(contents_frame.errors[0].tables[0].rows[5].sub_tables.length).to be == 1
259
- expect(contents_frame.errors[0].tables[0].rows[5].sub_tables[0].rows.length).to be == 1
260
- expect(contents_frame.errors[0].tables[0].rows[5].sub_tables[0].rows[0].labels[0].text).to be == "visible"
261
- expect(contents_frame.errors[0].tables[0].rows[5].sub_tables[0].rows[0].values[0].text).to be == "true"
263
+ expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "options"
264
+ expect(contents_frame.errors[0].tables[0].rows[3].sub_tables.length).to be == 1
265
+ expect(contents_frame.errors[0].tables[0].rows[3].sub_tables[0].rows.length).to be == 1
266
+ expect(contents_frame.errors[0].tables[0].rows[3].sub_tables[0].rows[0].labels[0].text).to be == "visible"
267
+ expect(contents_frame.errors[0].tables[0].rows[3].sub_tables[0].rows[0].values[0].text).to be == "true"
262
268
 
263
269
  contents_frame.errors[0].more_details.show_hide.click
264
- num_rows = contents_frame.errors[0].more_details.details.rows[0].sub_tables[0].rows.length
265
- expect(contents_frame.errors[0].more_details.details.rows.length).to be == 13 + num_rows
270
+ expect(contents_frame.errors[0].more_details.details.rows.length).to be == 11
266
271
  expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "all_elements"
267
- expect(contents_frame.errors[0].more_details.details.rows[0].sub_tables.length).to be > 1
268
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 1].labels[0].text).to be == "args"
269
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 2].labels[0].text).to be == "1"
270
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 2].values[0].text).to be == "a"
271
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 3].labels[0].text).to be == "2"
272
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 3].values[0].text).to be == "{:visible=>true}"
273
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 4].labels[0].text).to be == "guessed_types"
274
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 4].values[0].text).to be
275
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 5].labels[0].text).to be == "page_url"
276
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 5].values[0].text).
272
+ expect(contents_frame.errors[0].more_details.details.rows[0].sub_tables.length).to eq 1
273
+ expect(contents_frame.errors[0].more_details.details.rows[0].sub_tables[0].rows.length).to eq total_tests
274
+ expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "args"
275
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[0].labels[0].text).to be == "1"
276
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[0].values[0].text).to be == "a"
277
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[1].labels[0].text).to be == "2"
278
+ expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[1].values[0].text).to be == "{:visible=>true}"
279
+ expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "guessed_types"
280
+ expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to be
281
+ expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "page_url"
282
+ expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).
277
283
  to match /report_contents\.html/
278
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 6].labels[0].text).to be == "title"
279
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 6].values[0].text).
284
+ expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "title"
285
+ expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).
280
286
  to be == "Diagnostics report list"
281
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 7].labels[0].text).to be == "screen_shot"
282
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 7].value_images[0][:src]).
287
+ expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "screen_shot"
288
+ expect(contents_frame.errors[0].more_details.details.rows[5].value_images[0][:src]).
283
289
  to match /\/screen_shot\.png/
284
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 8].labels[0].text).to be == "html_file"
285
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 8].value_links[0][:href]).
290
+ expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "html_file"
291
+ expect(contents_frame.errors[0].more_details.details.rows[6].value_links[0][:href]).
286
292
  to match /html_save_file\/__cornucopia_save_page\.html/
287
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 9].labels[0].text).to be == "html_frame"
288
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 9].value_frames[0][:src]).
293
+ expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "html_frame"
294
+ expect(contents_frame.errors[0].more_details.details.rows[7].value_frames[0][:src]).
289
295
  to match /page_dump\.html/
290
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 10].labels[0].text).to be == "html_source"
291
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 10].value_textareas[0].text).to be
292
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 11].labels[0].text).to be == "page_height"
293
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 11].values[0].text).to be
294
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 12].labels[0].text).to be == "page_width"
295
- expect(contents_frame.errors[0].more_details.details.rows[num_rows + 12].values[0].text).to be
296
+ expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "html_source"
297
+ expect(contents_frame.errors[0].more_details.details.rows[8].value_textareas[0].text).to be
298
+ expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "page_height"
299
+ expect(contents_frame.errors[0].more_details.details.rows[9].values[0].text).to be
300
+ expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "page_width"
301
+ expect(contents_frame.errors[0].more_details.details.rows[10].values[0].text).to be
296
302
  end
297
303
  end
298
304
  end
@@ -320,19 +326,19 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
320
326
  test_page.contents do |contents_frame|
321
327
  expect(contents_frame.errors.length).to be == 1
322
328
  contents_frame.errors[0].more_details.show_hide.click
323
- expect(contents_frame.errors[0].more_details.details.rows.length).to eq 13
324
- expect(contents_frame.errors[0].more_details.details.row(0).labels[0].text).to eq "name"
325
- expect(contents_frame.errors[0].more_details.details.row(1).labels[0].text).to eq "args"
326
- expect(contents_frame.errors[0].more_details.details.row(2).labels[0].text).to eq "guessed_types"
327
- expect(contents_frame.errors[0].more_details.details.row(3).labels[0].text).to eq "support_options"
328
- expect(contents_frame.errors[0].more_details.details.row(4).labels[0].text).to eq "page_url"
329
- expect(contents_frame.errors[0].more_details.details.row(5).labels[0].text).to eq "title"
330
- expect(contents_frame.errors[0].more_details.details.row(6).labels[0].text).to eq "screen_shot"
331
- expect(contents_frame.errors[0].more_details.details.row(7).labels[0].text).to eq "html_file"
332
- expect(contents_frame.errors[0].more_details.details.row(8).labels[0].text).to eq "html_frame"
333
- expect(contents_frame.errors[0].more_details.details.row(9).labels[0].text).to eq "html_source"
334
- expect(contents_frame.errors[0].more_details.details.row(10).labels[0].text).to eq "page_height"
335
- expect(contents_frame.errors[0].more_details.details.row(11).labels[0].text).to eq "page_width"
329
+ expect(contents_frame.errors[0].more_details.details.rows.length).to eq 12
330
+ expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to eq "name"
331
+ expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to eq "args"
332
+ expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to eq "guessed_types"
333
+ expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to eq "support_options"
334
+ expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to eq "page_url"
335
+ expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to eq "title"
336
+ expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to eq "screen_shot"
337
+ expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to eq "html_file"
338
+ expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to eq "html_frame"
339
+ expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to eq "html_source"
340
+ expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to eq "page_height"
341
+ expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to eq "page_width"
336
342
  end
337
343
  end
338
344
  end
@@ -350,29 +356,29 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
350
356
  test_page.contents do |contents_frame|
351
357
  expect(contents_frame.errors.length).to be == 1
352
358
  contents_frame.errors[0].more_details.show_hide.click
353
- expect(contents_frame.errors[0].more_details.details.row(2).labels[0].text).to be == "all_other_elements"
359
+ expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "all_other_elements"
354
360
 
355
- hidden_row_specs = contents_frame.errors[0].more_details.details.row(1).sub_tables[0].rows[0].sub_tables[0].rows
361
+ hidden_row_specs = contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[0].sub_tables[0].rows
356
362
  expect(hidden_row_specs[0].labels[0].text).to be == "elem_checked"
357
363
  expect(hidden_row_specs[1].labels[0].text).to be == "elem_id"
358
364
  expect(hidden_row_specs[1].values[0].text).to be == "hidden-cool-button"
359
365
  expect(hidden_row_specs[2].labels[0].text).to be == "elem_location"
360
- expect(hidden_row_specs[3].labels[0].text).to be == "x"
361
- expect(hidden_row_specs[4].labels[0].text).to be == "y"
362
- expect(hidden_row_specs[5].labels[0].text).to be == "elem_outerHTML"
363
- expect(hidden_row_specs[6].labels[0].text).to be == "elem_selected"
364
- expect(hidden_row_specs[7].labels[0].text).to be == "elem_tag_name"
365
- expect(hidden_row_specs[8].labels[0].text).to be == "elem_value"
366
- expect(hidden_row_specs[9].labels[0].text).to be == "elem_visible"
367
- expect(hidden_row_specs[9].values[0].text).to be == "false"
368
- expect(hidden_row_specs[10].labels[0].text).to be == "native_aria_meta_data"
369
- expect(hidden_row_specs[11].labels[0].text).to be == "native_class"
370
- expect(hidden_row_specs[12].labels[0].text).to be == "native_onclick"
371
- expect(hidden_row_specs[13].labels[0].text).to be == "native_size"
372
- expect(hidden_row_specs[14].labels[0].text).to be == "width"
373
- expect(hidden_row_specs[15].labels[0].text).to be == "height"
374
- expect(hidden_row_specs[16].labels[0].text).to be == "native_type"
375
- expect(hidden_row_specs[16].values[0].text).to be == "button"
366
+ expect(hidden_row_specs[2].sub_tables[0].rows[0].labels[0].text).to be == "x"
367
+ expect(hidden_row_specs[2].sub_tables[0].rows[1].labels[0].text).to be == "y"
368
+ expect(hidden_row_specs[3].labels[0].text).to be == "elem_outerHTML"
369
+ expect(hidden_row_specs[4].labels[0].text).to be == "elem_selected"
370
+ expect(hidden_row_specs[5].labels[0].text).to be == "elem_tag_name"
371
+ expect(hidden_row_specs[6].labels[0].text).to be == "elem_value"
372
+ expect(hidden_row_specs[7].labels[0].text).to be == "elem_visible"
373
+ expect(hidden_row_specs[7].values[0].text).to be == "false"
374
+ expect(hidden_row_specs[8].labels[0].text).to be == "native_aria_meta_data"
375
+ expect(hidden_row_specs[9].labels[0].text).to be == "native_class"
376
+ expect(hidden_row_specs[10].labels[0].text).to be == "native_onclick"
377
+ expect(hidden_row_specs[11].labels[0].text).to be == "native_size"
378
+ expect(hidden_row_specs[11].sub_tables[0].rows[0].labels[0].text).to be == "width"
379
+ expect(hidden_row_specs[11].sub_tables[0].rows[1].labels[0].text).to be == "height"
380
+ expect(hidden_row_specs[12].labels[0].text).to be == "native_type"
381
+ expect(hidden_row_specs[12].values[0].text).to be == "button"
376
382
  end
377
383
  end
378
384
  end
@@ -411,11 +417,11 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
411
417
  test_page.contents do |contents_frame|
412
418
  expect(contents_frame.errors.length).to be == 1
413
419
 
414
- the_row = contents_frame.errors[0].tables[0].row(0)
420
+ the_row = contents_frame.errors[0].tables[0].rows[0]
415
421
  expect(the_row.labels[0].text).to be == "something"
416
422
  expect(the_row.values[0].text).to be == "a value"
417
423
 
418
- the_row = contents_frame.errors[0].tables[0].row(2)
424
+ the_row = contents_frame.errors[0].tables[0].rows[2]
419
425
  expect(the_row.labels[0].text).to be == "function_name"
420
426
  expect(the_row.values[0].text).to be == ":find"
421
427
 
@@ -446,7 +452,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
446
452
  test_page.contents do |contents_frame|
447
453
  expect(contents_frame.errors.length).to be == 1
448
454
 
449
- the_row = contents_frame.errors[0].tables[4].row(0)
455
+ the_row = contents_frame.errors[0].tables[1].rows[0]
450
456
  expect(the_row.labels[0].text).to be == "function_name"
451
457
  expect(the_row.values[0].text).to be == ":select"
452
458
  end
@@ -495,6 +495,26 @@ describe "Cornucopia::Util::Configuration" do
495
495
  end
496
496
  end
497
497
 
498
+ describe "#benchmark" do
499
+ it "has a default value" do
500
+ expect(Cornucopia::Util::Configuration.benchmark).to eq false
501
+ end
502
+
503
+ it "can set the value" do
504
+ orig_value = Cornucopia::Util::Configuration.benchmark
505
+
506
+ begin
507
+ new_value = [true, false].sample
508
+
509
+ Cornucopia::Util::Configuration.benchmark = new_value
510
+
511
+ expect(Cornucopia::Util::Configuration.benchmark).to eq new_value
512
+ ensure
513
+ Cornucopia::Util::Configuration.benchmark= orig_value
514
+ end
515
+ end
516
+ end
517
+
498
518
  # describe "#alternate_retry" do
499
519
  # it "#can read the default" do
500
520
  # expect(Cornucopia::Util::Configuration.alternate_retry).to be_falsy
@@ -213,10 +213,10 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
213
213
  it "calls #pretty_format on a sub-array after it is converted to a string" do
214
214
  expect(Cornucopia::Util::ReportBuilder).
215
215
  to receive(:pretty_format).
216
- with(anything, in_pretty_print: true).
217
- exactly(4).
218
- times.
219
- and_call_original
216
+ with(anything, in_pretty_print: true).
217
+ exactly(4).
218
+ times.
219
+ and_call_original
220
220
 
221
221
  array_values << [1, 2, 3]
222
222
 
@@ -1102,25 +1102,31 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1102
1102
 
1103
1103
  describe "#within_test" do
1104
1104
  it "starts a test with a specific name" do
1105
- current_report = send(report_settings[:report])
1105
+ backup = Cornucopia::Util::Configuration.backup_logs_on_failure
1106
+ begin
1107
+ Cornucopia::Util::Configuration.backup_logs_on_failure = true
1108
+ current_report = send(report_settings[:report])
1106
1109
 
1107
- current_report.within_test(test_names[0]) do
1108
- current_report.within_section(section_names[0]) do |report_section|
1109
- report_section.within_table do |report_table|
1110
- report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1110
+ current_report.within_test(test_names[0]) do
1111
+ current_report.within_section(section_names[0]) do |report_section|
1112
+ report_section.within_table do |report_table|
1113
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1114
+ end
1111
1115
  end
1112
1116
  end
1113
- end
1114
1117
 
1115
- current_report.close
1118
+ current_report.close
1116
1119
 
1117
- report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1120
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1118
1121
 
1119
- expect(report_page.all(".coruncopia-report-link").length).to eq 2
1120
- expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1121
- expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1122
- expect(report_page.all(".coruncopia-report-link")[1].text).to eq "test.log"
1123
- expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "log_files/test.log"
1122
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1123
+ expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1124
+ expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1125
+ expect(report_page.all(".coruncopia-report-link")[1].text).to eq "test.log"
1126
+ expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "log_files/test.log"
1127
+ ensure
1128
+ Cornucopia::Util::Configuration.backup_logs_on_failure = backup
1129
+ end
1124
1130
  end
1125
1131
 
1126
1132
  it "doesn't output anything if nothing is written to a section or table" do
@@ -1154,14 +1160,14 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1154
1160
 
1155
1161
  report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1156
1162
 
1157
- expect(report_page.all(".coruncopia-report-link").length).to eq (test_names.length + 1)
1163
+ expect(report_page.all(".coruncopia-report-link").length).to eq test_names.length
1158
1164
 
1159
1165
  test_names.each_with_index do |test_name, test_index|
1160
1166
  expect(report_page.all(".coruncopia-report-link")[test_index].text).to eq test_name
1161
1167
  expect(report_page.all(".coruncopia-report-link")[test_index]["href"]).to eq "test_#{test_index + 1}/index.html"
1162
1168
  end
1163
- expect(report_page.all(".coruncopia-report-link")[-1].text).to eq "test.log"
1164
- expect(report_page.all(".coruncopia-report-link")[-1]["href"]).to eq "log_files/test.log"
1169
+ # expect(report_page.all(".coruncopia-report-link")[-1].text).to eq "test.log"
1170
+ # expect(report_page.all(".coruncopia-report-link")[-1]["href"]).to eq "log_files/test.log"
1165
1171
  end
1166
1172
 
1167
1173
  it "handles a test within a test as an independent test" do
@@ -1186,13 +1192,13 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1186
1192
 
1187
1193
  report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1188
1194
 
1189
- expect(report_page.all(".coruncopia-report-link").length).to eq 3
1195
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1190
1196
  expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1191
1197
  expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1192
1198
  expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[1]
1193
1199
  expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1194
- expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1195
- expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1200
+ # expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1201
+ # expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1196
1202
 
1197
1203
  report_page = Capybara::Node::Simple.new(File.read(File.join(current_report.report_folder_name, "test_1/report_contents.html")))
1198
1204
  expect(report_page.all(".cornucopia-section-label").length).to eq 1
@@ -1231,13 +1237,13 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1231
1237
 
1232
1238
  report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1233
1239
 
1234
- expect(report_page.all(".coruncopia-report-link").length).to eq 3
1240
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1235
1241
  expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1236
1242
  expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1237
1243
  expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[1]
1238
1244
  expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1239
- expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1240
- expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1245
+ # expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1246
+ # expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1241
1247
 
1242
1248
  report_page = Capybara::Node::Simple.new(File.read(File.join(current_report.report_folder_name, "test_1/report_contents.html")))
1243
1249
  expect(report_page.all(".cornucopia-section-label").length).to eq 2
@@ -1264,14 +1270,14 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1264
1270
 
1265
1271
  report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1266
1272
 
1267
- expect(report_page.all(".coruncopia-report-link").length).to eq 3
1273
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1268
1274
 
1269
1275
  expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1270
1276
  expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1271
1277
  expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[-1]
1272
1278
  expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1273
- expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1274
- expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1279
+ # expect(report_page.all(".coruncopia-report-link")[2].text).to eq "test.log"
1280
+ # expect(report_page.all(".coruncopia-report-link")[2]["href"]).to eq "log_files/test.log"
1275
1281
  end
1276
1282
  end
1277
1283
 
@@ -0,0 +1,14 @@
1
+ require File.expand_path("cornucopia_report_test_contents_page", File.dirname(__FILE__))
2
+
3
+ module CornucopiaReportPages
4
+ class CornucopiaReportHolderPage < SitePrism::Page
5
+ class CornucopiaReportHolderIndexPage < SitePrism::Page
6
+ iframe :contents, CornucopiaReportPages::CornucopiaReportTestContentsPage, "#report-base-contents"
7
+ end
8
+
9
+ set_url "{/base_folder}{/report_name}/index.html"
10
+
11
+ elements :tests, ".report-index-list li a"
12
+ iframe :displayed_test, CornucopiaReportHolderIndexPage, "#report-display-document"
13
+ end
14
+ end
@@ -0,0 +1,121 @@
1
+ module CornucopiaReportPages
2
+ class CornucopiaReportTestContentsPage < SitePrism::Page
3
+ class RowSection < SitePrism::Section
4
+ attr_accessor :parent_index,
5
+ :parent_path,
6
+ :parent_path_owner
7
+
8
+ def labels
9
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-label")
10
+ end
11
+
12
+ def expands
13
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-expand .cornucopia-cell-more-data")
14
+ end
15
+
16
+ def mores
17
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .cornucopia-cell-more .cornucopia-cell-more-data")
18
+ end
19
+
20
+ def values
21
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .hide-contents")
22
+ end
23
+
24
+ def value_images
25
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .cornucopia-section-image")
26
+ end
27
+
28
+ def value_links
29
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .hide-contents > a")
30
+ end
31
+
32
+ def value_frames
33
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .padded-frame > iframe")
34
+ end
35
+
36
+ def value_textareas
37
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .padded-frame > textarea")
38
+ end
39
+
40
+ def sub_tables
41
+ index = 1
42
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .cornucopia-table").map do |element|
43
+ table = TableSection.new self, element
44
+ table.parent_index = index
45
+ table.parent_path = "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-cell-data > .cornucopia-table"
46
+ table.parent_path_owner = parent_path_owner
47
+ index += 1
48
+ table
49
+ end
50
+ end
51
+ end
52
+
53
+ class TableSection < SitePrism::Section
54
+ attr_accessor :parent_index,
55
+ :parent_path,
56
+ :parent_path_owner
57
+
58
+ def rows
59
+ index = 1
60
+
61
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-row").map do |element|
62
+ row = RowSection.new self, element
63
+ row.parent_index = index
64
+ row.parent_path = "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-row"
65
+ row.parent_path_owner = parent_path_owner
66
+ index += 1
67
+
68
+ row
69
+ end
70
+ end
71
+ end
72
+
73
+ class MoreDetailsSection < SitePrism::Section
74
+ element :show_hide, "a.cornucopia-additional-details"
75
+
76
+ def details
77
+ table = TableSection.new self, send(:find_first, "div.cornucopia-additional-details > .cornucopia-table")
78
+ table.parent_index = 1
79
+ table.parent_path = "div.cornucopia-additional-details > .cornucopia-table"
80
+ table.parent_path_owner = self
81
+
82
+ table
83
+ end
84
+ end
85
+
86
+ class ErrorSection < SitePrism::Section
87
+ attr_accessor :parent_index,
88
+ :parent_path,
89
+ :parent_path_owner
90
+
91
+ element :name, ".cornucopia-section-label"
92
+ section :more_details, MoreDetailsSection, ".cornucopia-show-hide-section"
93
+
94
+ def tables
95
+ index = 2
96
+ parent_path_owner.send(:find_all, "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-table").map do |element|
97
+ table = TableSection.new self, element
98
+ table.parent_index = index
99
+ table.parent_path = "#{parent_path}:nth-child(#{parent_index}) > .cornucopia-table"
100
+ table.parent_path_owner = parent_path_owner
101
+ index += 1
102
+ table
103
+ end
104
+ end
105
+ end
106
+
107
+ sections :all_errors, ErrorSection, ".cornucopia-section"
108
+
109
+ def errors
110
+ unless defined?(@all_errros)
111
+ @errors ||= all_errors
112
+
113
+ @errors.each_with_index do |error, index|
114
+ error.parent_index = index + 1
115
+ error.parent_path = ".cornucopia-section"
116
+ error.parent_path_owner = self
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,16 @@
1
+ module CornucopiaReportPages
2
+ class IndexPage < SitePrism::Page
3
+ class IndexContentsPage < SitePrism::Page
4
+ class ReportBlock < SitePrism::Section
5
+ element :name, "h4"
6
+ elements :reports, ".index-list li a"
7
+ end
8
+
9
+ sections :reports, ReportBlock, ".report-block"
10
+ end
11
+
12
+ set_url "{/base_folder}/index.html"
13
+
14
+ iframe :contents, IndexContentsPage, "#base-contents"
15
+ end
16
+ end
data/spec/rails_helper.rb CHANGED
@@ -13,9 +13,9 @@ require 'rspec/rails'
13
13
  # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
14
14
  Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
15
15
 
16
- # Checks for pending migrations before tests are run.
17
- # If you are not using ActiveRecord, you can remove this line.
18
- ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
16
+ # # Checks for pending migrations before tests are run.
17
+ # # If you are not using ActiveRecord, you can remove this line.
18
+ # ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
19
19
 
20
20
  RSpec.configure do |config|
21
21
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
data/spec/spec_helper.rb CHANGED
@@ -21,9 +21,9 @@ require 'rspec/rails'
21
21
  # in spec/support/ and its subdirectories.
22
22
  Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
23
23
 
24
- # Checks for pending migrations before tests are run.
25
- # If you are not using ActiveRecord, you can remove this line.
26
- ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
24
+ # # Checks for pending migrations before tests are run.
25
+ # # If you are not using ActiveRecord, you can remove this line.
26
+ # ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
27
27
 
28
28
  RSpec.configure do |config|
29
29
  # ## Mock Framework
@@ -64,7 +64,7 @@ Capybara.default_driver = :selenium
64
64
  RSpec.configure do |config|
65
65
  config.around(:each) do |example|
66
66
  @test_seed_value = Cornucopia::Util::Configuration.seed ||
67
- 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999)
67
+ 100000000000000000000000000000000000000 + Random.new.rand(899999999999999999999999999999999999999)
68
68
 
69
69
  srand(@test_seed_value)
70
70
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cornucopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.34
4
+ version: 0.1.35
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-05 00:00:00.000000000 Z
12
+ date: 2015-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -345,6 +345,9 @@ files:
345
345
  - spec/lib/util/report_table_spec.rb
346
346
  - spec/lib/util/test_helper_spec.rb
347
347
  - spec/pages/cornucopia_report_app.rb
348
+ - spec/pages/cornucopia_report_pages/cornucopia_report_holder_page.rb
349
+ - spec/pages/cornucopia_report_pages/cornucopia_report_test_contents_page.rb
350
+ - spec/pages/cornucopia_report_pages/index_page.rb
348
351
  - spec/pages/google/email_page.rb
349
352
  - spec/pages/google/login_page.rb
350
353
  - spec/rails_helper.rb
@@ -437,6 +440,9 @@ test_files:
437
440
  - spec/lib/util/report_table_spec.rb
438
441
  - spec/lib/util/test_helper_spec.rb
439
442
  - spec/pages/cornucopia_report_app.rb
443
+ - spec/pages/cornucopia_report_pages/cornucopia_report_holder_page.rb
444
+ - spec/pages/cornucopia_report_pages/cornucopia_report_test_contents_page.rb
445
+ - spec/pages/cornucopia_report_pages/index_page.rb
440
446
  - spec/pages/google/email_page.rb
441
447
  - spec/pages/google/login_page.rb
442
448
  - spec/rails_helper.rb