cornucopia 0.1.34 → 0.1.35

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.
@@ -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