sufia 2.0.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +111 -0
  3. data/Gemfile +4 -4
  4. data/History.md +126 -0
  5. data/README.md +23 -5
  6. data/SUFIA_VERSION +1 -1
  7. data/app/assets/javascripts/sufia/multiForm.js +10 -2
  8. data/app/assets/stylesheets/{application-bootstrap.css → application-bootstrap.css.erb} +7 -7
  9. data/app/assets/stylesheets/{bootstrap.min.css → bootstrap.min.css.erb} +1 -1
  10. data/app/controllers/concerns/sufia/users_controller_behavior.rb +9 -3
  11. data/app/controllers/single_use_link_controller.rb +1 -1
  12. data/app/helpers/sufia_helper.rb +7 -1
  13. data/app/models/contact_form.rb +0 -14
  14. data/app/views/_user_util_links.html.erb +0 -15
  15. data/app/views/batch_edits/_check_all.html.erb +2 -2
  16. data/app/views/batch_edits/_delete_selected.html.erb +1 -1
  17. data/app/views/layouts/{_head-tag-content.html.erb → _head_tag_content.html.erb} +0 -0
  18. data/app/views/layouts/homepage.html.erb +2 -2
  19. data/app/views/layouts/sufia-one-column.html.erb +1 -1
  20. data/app/views/layouts/sufia-two-column.html.erb +1 -1
  21. data/app/views/users/edit.html.erb +1 -1
  22. data/app/views/users/show.html.erb +1 -17
  23. data/config/routes.rb +31 -33
  24. data/lib/generators/sufia/sufia_generator.rb +5 -3
  25. data/lib/generators/sufia/templates/catalog_controller.rb +5 -1
  26. data/lib/generators/sufia/templates/config/redis_config.rb +1 -14
  27. data/lib/sufia/batch_edits_controller_behavior.rb +1 -1
  28. data/lib/sufia/controller.rb +1 -1
  29. data/lib/sufia/dashboard_controller_behavior.rb +8 -2
  30. data/lib/sufia/files_controller_behavior.rb +1 -2
  31. data/lib/sufia/version.rb +1 -1
  32. data/spec/active_fedora/unsaved_digital_object_spec.rb +1 -15
  33. data/spec/controllers/authorities_controller_spec.rb +1 -15
  34. data/spec/controllers/batch_controller_spec.rb +10 -16
  35. data/spec/controllers/batch_edits_controller_spec.rb +1 -1
  36. data/spec/controllers/catalog_controller_spec.rb +1 -15
  37. data/spec/controllers/dashboard_controller_spec.rb +23 -17
  38. data/spec/controllers/downloads_controller_spec.rb +1 -15
  39. data/spec/controllers/generic_files_controller_spec.rb +18 -32
  40. data/spec/controllers/mailbox_controller_spec.rb +1 -15
  41. data/spec/controllers/single_use_link_controller_spec.rb +6 -13
  42. data/spec/controllers/users_controller_spec.rb +27 -41
  43. data/spec/factories/users.rb +5 -14
  44. data/spec/features/browse_dashboard_files.rb +21 -0
  45. data/spec/features/browse_files.rb +31 -0
  46. data/spec/features/contact_form.rb +99 -0
  47. data/spec/features/display_dashboard.rb +46 -0
  48. data/spec/features/ingest_upload_files.rb +24 -0
  49. data/spec/features/users_spec.rb +25 -0
  50. data/spec/helpers/generic_file_helper_spec.rb +10 -3
  51. data/spec/helpers/sufia_helper_spec.rb +1 -1
  52. data/spec/lib/sufia/id_service_spec.rb +1 -15
  53. data/spec/models/audit_job_spec.rb +1 -15
  54. data/spec/models/batch_spec.rb +1 -15
  55. data/spec/models/batch_update_job_spec.rb +3 -16
  56. data/spec/models/characterize_job_spec.rb +4 -4
  57. data/spec/models/checksum_audit_log_spec.rb +1 -15
  58. data/spec/models/event_jobs_spec.rb +1 -15
  59. data/spec/models/file_content_datastream_spec.rb +5 -19
  60. data/spec/models/fits_datastream_spec.rb +1 -15
  61. data/spec/models/generic_file/web_form_spec.rb +34 -0
  62. data/spec/models/generic_file_spec.rb +11 -39
  63. data/spec/models/local_authority_spec.rb +3 -15
  64. data/spec/models/properties_datastream_spec.rb +1 -1
  65. data/spec/models/single_use_link_spec.rb +1 -1
  66. data/spec/models/solr_document_spec.rb +1 -1
  67. data/spec/models/transcode_audio_job_spec.rb +1 -1
  68. data/spec/models/transcode_video_job_spec.rb +1 -1
  69. data/spec/models/trophy_spec.rb +1 -1
  70. data/spec/models/unzip_job_spec.rb +1 -15
  71. data/spec/models/user_spec.rb +1 -15
  72. data/spec/rake/sufia_fixtures_spec.rb +3 -17
  73. data/spec/routing/route_spec.rb +7 -21
  74. data/spec/spec_helper.rb +8 -20
  75. data/spec/support/features.rb +6 -0
  76. data/spec/support/features/session_helpers.rb +21 -0
  77. data/spec/support/lib/generators/test_app_generator.rb +4 -0
  78. data/spec/views/batch_edits/check_all_spec.rb +6 -4
  79. data/sufia-models/app/models/checksum_audit_log.rb +1 -15
  80. data/sufia-models/app/models/domain_term.rb +3 -15
  81. data/sufia-models/app/models/geo_names_resource.rb +1 -13
  82. data/sufia-models/app/models/local_authority.rb +12 -17
  83. data/sufia-models/app/models/local_authority_entry.rb +1 -15
  84. data/sufia-models/app/models/single_use_link.rb +2 -3
  85. data/sufia-models/app/models/trophy.rb +1 -1
  86. data/sufia-models/app/models/version_committer.rb +1 -15
  87. data/sufia-models/lib/sufia/models.rb +6 -2
  88. data/sufia-models/lib/sufia/models/engine.rb +1 -1
  89. data/sufia-models/lib/sufia/models/generic_file.rb +3 -0
  90. data/sufia-models/lib/sufia/models/generic_file/accessible_attributes.rb +87 -0
  91. data/sufia-models/lib/sufia/models/generic_file/permissions.rb +2 -1
  92. data/sufia-models/lib/sufia/models/generic_file/web_form.rb +4 -1
  93. data/sufia-models/lib/sufia/models/user.rb +9 -2
  94. data/sufia-models/lib/sufia/models/version.rb +1 -1
  95. data/{lib → sufia-models/lib}/tasks/resque.rake +0 -0
  96. data/sufia-models/sufia-models.gemspec +13 -11
  97. data/sufia.gemspec +1 -3
  98. data/tasks/sufia-dev.rake +21 -10
  99. metadata +30 -84
  100. data/config/cucumber.yml +0 -8
  101. data/features/browse_dashboard_files.feature +0 -16
  102. data/features/browse_files.feature +0 -16
  103. data/features/contact_form.feature +0 -86
  104. data/features/display_dashboard.feature +0 -42
  105. data/features/ingest_upload_files.feature +0 -21
  106. data/features/step_definitions/edit_metadata_steps.rb +0 -89
  107. data/features/step_definitions/fixture_steps.rb +0 -35
  108. data/features/step_definitions/show_document_steps.rb +0 -103
  109. data/features/step_definitions/sufia.rb +0 -69
  110. data/features/step_definitions/user_steps.rb +0 -58
  111. data/features/step_definitions/web_steps.rb +0 -235
  112. data/features/support/cleanup.rb +0 -19
  113. data/features/support/env.rb +0 -90
  114. data/features/support/headless.rb +0 -26
  115. data/features/support/paths.rb +0 -101
  116. data/features/users.feature +0 -18
  117. data/spec/lib/sufia/role_mapper_spec.rb +0 -28
  118. data/spec/support/Gemfile +0 -24
  119. data/spec/views/single_user_link/download.html.erb_spec.rb +0 -5
  120. data/spec/views/single_user_link/generate_download.html.erb_spec.rb +0 -5
  121. data/spec/views/single_user_link/generate_show.html.erb_spec.rb +0 -5
  122. data/spec/views/single_user_link/show.html.erb_spec.rb +0 -5
  123. data/tasks/cucumber.rake +0 -72
@@ -1,58 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # @example
16
- # I log in as "archivist1@example.com"
17
- # @example
18
- # I am logged in as "archivist1@example.com"
19
- Given /^I (?:am )?log(?:ged)? in as "([^\"]*)"$/ do |login|
20
- # driver_name = "rack_test_authenticated_header_#{login}".to_s
21
- # Capybara.register_driver(driver_name) do |app|
22
- # Capybara::RackTest::Driver.new(app, headers: { 'REMOTE_USER' => login })
23
- # end
24
- #Capybara.current_driver = driver_name
25
- user = User.where(:email=>login).first || FactoryGirl.create(:user, :email=>login)
26
- User.find_by_user_key(login).should_not be_nil
27
- visit "/"
28
- find("a[href=\"/users/sign_in\"]").click
29
- fill_in 'Email', with: login
30
- fill_in 'Password', with: 'password'
31
- click_button 'Sign in'
32
-
33
- step %{And I click within the anchor "i.icon-user"}
34
- step %{I should see a link to "ingest" with label "upload"}
35
- step %{I should see a link to "dashboard" with label "dashboard"}
36
- # step %{I should see a link to "logout"}
37
- end
38
-
39
- Given /^I am logged in as "([^\"]*)" with "([^\"]*)" permissions$/ do |login,permission_group|
40
- Given %{I am logged in as "#{login}"}
41
- RoleMapper.roles(login).should include permission_group
42
- end
43
-
44
- Given /^I am a superuser$/ do
45
- step %{I am logged in as "bigwig@example.com"}
46
- bigwig_id = User.find_by_email("bigwig@example.com").id
47
- superuser = Superuser.create(:id => 20, :user_id => bigwig_id)
48
- visit superuser_path
49
- end
50
-
51
- Given /^I am not logged in$/ do
52
- step %{I log out}
53
- end
54
-
55
- Given /^I log out$/ do
56
- Capybara.use_default_driver
57
- visit "/"
58
- end
@@ -1,235 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
16
- # It is recommended to regenerate this file in the future when you upgrade to a
17
- # newer version of cucumber-rails. Consider adding your own code to a new file
18
- # instead of editing this one. Cucumber will automatically load all features/**/*.rb
19
- # files.
20
-
21
-
22
- require 'uri'
23
- require 'cgi'
24
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
25
-
26
- module WithinHelpers
27
- # Hydra::LDAP.stubs(:does_user_exist?).returns(true)
28
-
29
- def with_scope(locator)
30
- locator ? within(locator) { yield } : yield
31
- end
32
- end
33
- World(WithinHelpers)
34
-
35
- Given /^(?:|I )am on (.+)$/ do |page_name|
36
- visit path_to(page_name)
37
- end
38
-
39
- When /^(?:|I )go to (.+)$/ do |page_name|
40
- visit path_to(page_name)
41
- end
42
-
43
- When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|
44
- with_scope(selector) do
45
- click_button(button)
46
- end
47
- end
48
-
49
- When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
50
- with_scope(selector) do
51
- click_link(link)
52
- end
53
- end
54
-
55
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"(?: within "([^"]*)")?$/ do |field, value, selector|
56
- with_scope(selector) do
57
- fill_in(field, :with => value)
58
- end
59
- end
60
-
61
- When /^(?:|I )fill in "([^"]*)" for "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
62
- with_scope(selector) do
63
- fill_in(field, :with => value)
64
- end
65
- end
66
-
67
- # Use this to fill in an entire form with data from a table. Example:
68
- #
69
- # When I fill in the following:
70
- # | Account Number | 5002 |
71
- # | Expiry date | 2009-11-01 |
72
- # | Note | Nice guy |
73
- # | Wants Email? | |
74
- #
75
- # TODO: Add support for checkbox, select og option
76
- # based on naming conventions.
77
- #
78
- When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, fields|
79
- with_scope(selector) do
80
- fields.rows_hash.each do |name, value|
81
- When %{I fill in "#{name}" with "#{value}"}
82
- end
83
- end
84
- end
85
-
86
- When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
87
- with_scope(selector) do
88
- select(value, :from => field)
89
- end
90
- end
91
-
92
- When /^(?:|I )check "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
93
- with_scope(selector) do
94
- check(field)
95
- end
96
- end
97
-
98
- When /^(?:|I )uncheck "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
99
- with_scope(selector) do
100
- uncheck(field)
101
- end
102
- end
103
-
104
- When /^(?:|I )choose "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
105
- with_scope(selector) do
106
- choose(field)
107
- end
108
- end
109
-
110
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector|
111
- with_scope(selector) do
112
- attach_file(field, path)
113
- end
114
- end
115
-
116
- Then /^(?:|I )should see JSON:$/ do |expected_json|
117
- require 'json'
118
- expected = JSON.pretty_generate(JSON.parse(expected_json))
119
- actual = JSON.pretty_generate(JSON.parse(response.body))
120
- expected.should == actual
121
- end
122
-
123
- Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
124
- with_scope(selector) do
125
- if page.respond_to? :should
126
- page.should have_content(text)
127
- else
128
- assert page.has_content?(text)
129
- end
130
- end
131
- end
132
-
133
- Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
134
- regexp = Regexp.new(regexp)
135
- with_scope(selector) do
136
- if page.respond_to? :should
137
- page.should have_xpath('//*', :text => regexp)
138
- else
139
- assert page.has_xpath?('//*', :text => regexp)
140
- end
141
- end
142
- end
143
-
144
- Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
145
- with_scope(selector) do
146
- if page.respond_to? :should
147
- page.should have_no_content(text)
148
- else
149
- assert page.has_no_content?(text)
150
- end
151
- end
152
- end
153
-
154
- Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
155
- regexp = Regexp.new(regexp)
156
- with_scope(selector) do
157
- if page.respond_to? :should
158
- page.should have_no_xpath('//*', :text => regexp)
159
- else
160
- assert page.has_no_xpath?('//*', :text => regexp)
161
- end
162
- end
163
- end
164
-
165
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |field, selector, value|
166
- with_scope(selector) do
167
- field = find_field(field)
168
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
169
- if field_value.respond_to? :should
170
- field_value.should =~ /#{value}/
171
- else
172
- assert_match(/#{value}/, field_value)
173
- end
174
- end
175
- end
176
-
177
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/ do |field, selector, value|
178
- with_scope(selector) do
179
- field = find_field(field)
180
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
181
- if field_value.respond_to? :should_not
182
- field_value.should_not =~ /#{value}/
183
- else
184
- assert_no_match(/#{value}/, field_value)
185
- end
186
- end
187
- end
188
-
189
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |label, selector|
190
- with_scope(selector) do
191
- field_checked = find_field(label)['checked']
192
- if field_checked.respond_to? :should
193
- field_checked.should be_true
194
- else
195
- assert field_checked
196
- end
197
- end
198
- end
199
-
200
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |label, selector|
201
- with_scope(selector) do
202
- field_checked = find_field(label)['checked']
203
- if field_checked.respond_to? :should
204
- field_checked.should be_false
205
- else
206
- assert !field_checked
207
- end
208
- end
209
- end
210
-
211
- Then /^(?:|I )should be on (.+)$/ do |page_name|
212
- current_path = URI.parse(current_url).path
213
- if current_path.respond_to? :should
214
- current_path.should == path_to(page_name)
215
- else
216
- assert_equal path_to(page_name), current_path
217
- end
218
- end
219
-
220
- Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
221
- query = URI.parse(current_url).query
222
- actual_params = query ? CGI.parse(query) : {}
223
- expected_params = {}
224
- expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
225
-
226
- if actual_params.respond_to? :should
227
- actual_params.should == expected_params
228
- else
229
- assert_equal expected_params, actual_params
230
- end
231
- end
232
-
233
- Then /^show me the page$/ do
234
- save_and_open_page
235
- end
@@ -1,19 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- at_exit do
16
- Batch.destroy_all
17
- GenericFile.destroy_all
18
- User.destroy_all
19
- end
@@ -1,90 +0,0 @@
1
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
4
- # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
- # files.
6
- require "rake"
7
-
8
- #require 'capybara'
9
- ENV["RAILS_ENV"] ||= "test"
10
- require File.expand_path("../../../spec/internal/config/environment.rb", __FILE__)
11
- ENV["RAILS_ROOT"] ||= File.dirname(__FILE__) + "../../../spec/internal"
12
-
13
-
14
- FactoryGirl.definition_file_paths = [File.expand_path("../../../spec/factories", __FILE__)]
15
- FactoryGirl.find_definitions
16
-
17
- require 'cucumber/rails'
18
-
19
- # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
20
- # order to ease the transition to Capybara we set the default here. If you'd
21
- # prefer to use XPath just remove this line and adjust any selectors in your
22
- # steps to use the XPath syntax.
23
- Capybara.default_selector = :css
24
-
25
- # By default, any exception happening in your Rails application will bubble up
26
- # to Cucumber so that your scenario will fail. This is a different from how
27
- # your application behaves in the production environment, where an error page will
28
- # be rendered instead.
29
- #
30
- # Sometimes we want to override this default behaviour and allow Rails to rescue
31
- # exceptions and display an error page (just like when the app is running in production).
32
- # Typical scenarios where you want to do this is when you test your error pages.
33
- # There are two ways to allow Rails to rescue exceptions:
34
- #
35
- # 1) Tag your scenario (or feature) with @allow-rescue
36
- #
37
- # 2) Set the value below to true. Beware that doing this globally is not
38
- # recommended as it will mask a lot of errors for you!
39
- #
40
- ActionController::Base.allow_rescue = false
41
-
42
- # Remove/comment out the lines below if your app doesn't have a database.
43
- # For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
44
- begin
45
- DatabaseCleaner.strategy = :transaction
46
- rescue NameError
47
- raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
48
- end
49
-
50
- # You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
51
- # See the DatabaseCleaner documentation for details. Example:
52
- #
53
- # Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
54
- # DatabaseCleaner.strategy = :truncation, {:except => %w[widgets]}
55
- # end
56
- #
57
- # Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
58
- # DatabaseCleaner.strategy = :transaction
59
- # end
60
- #
61
-
62
- # Possible values are :truncation and :transaction
63
- # The :transaction strategy is faster, but might give you threading problems.
64
- # See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
65
- Cucumber::Rails::Database.javascript_strategy = :truncation
66
-
67
- #load fixtures for cucumber tests
68
- def loaded_files_excluding_current_rake_file
69
- $".reject { |file| file.include? "lib/tasks/fixtures" }
70
- end
71
- def activefedora_path
72
- Gem.loaded_specs['active-fedora'].full_gem_path
73
- end
74
- def load_rake
75
- @rake = Rake::Application.new
76
- Rake.application = @rake
77
- Rake.application.rake_require("tasks/sufia-fixtures", ["."], loaded_files_excluding_current_rake_file)
78
- Rake.application.rake_require("lib/tasks/fixtures", ["."], loaded_files_excluding_current_rake_file)
79
- Rake.application.rake_require("lib/tasks/active_fedora", [activefedora_path], loaded_files_excluding_current_rake_file)
80
- Rake::Task.define_task(:environment)
81
- end
82
- load_rake
83
- @rake['sufia:fixtures:refresh'].invoke
84
- @rake['sufia:fixtures:fix'].invoke
85
-
86
- at_exit do
87
- load_rake
88
- @rake['sufia:fixtures:delete'].invoke
89
- end
90
-
@@ -1,26 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # Headless for Jenkins CI builds
16
- Before("@javascript") do
17
- if ENV['HEADLESS'] == 'true'
18
- Capybara.current_driver = :selenium
19
- require 'headless'
20
- headless = Headless.new
21
- headless.start
22
- at_exit do
23
- headless.destroy
24
- end
25
- end
26
- end
@@ -1,101 +0,0 @@
1
- # Copyright © 2012 The Pennsylvania State University
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- module NavigationHelpers
16
- # Maps a name to a path. Used by the
17
- #
18
- # When /^I go to (.+)$/ do |page_name|
19
- #
20
- # step definition in webrat_steps.rb
21
- #
22
- def path_to(page_name)
23
-
24
- case page_name
25
-
26
- when /the home\s?page/
27
- '/'
28
- when /the search page/
29
- '/catalog'
30
- when /ingest/
31
- sufia.new_generic_file_path
32
- when /logout/
33
- sufia.destroy_user_session_path
34
- when /my account info/
35
- sufia.edit_user_registration_path
36
- when /the base search page/
37
- '/catalog?q=&search_field=search&action=index&controller=catalog&commit=search'
38
- when /the document page for id (.+)/
39
- sufia.catalog_path($1)
40
- when /the edit page for id (.+)/
41
- sufia.edit_catalog_path($1)
42
- when /the catalog index page/
43
- sufia.catalog_index_path
44
- # Add more mappings here.
45
- # Here is a more fancy example:
46
- #
47
- # when /^(.*)'s profile page$/i
48
- # user_profile_path(User.find_by_login($1))
49
- when /dashboard/
50
- sufia.dashboard_index_path
51
-
52
- when /the edit document page for (.*)$/i
53
- sufia.edit_catalog_path($1)
54
- when /the show document page for (.*)$/i
55
- sufia.catalog_path($1)
56
- when /the delete confirmation page for (.*)$/i
57
- sufia.delete_catalog_path($1)
58
-
59
- when /the file (?:asset )?list page for (.*)$/i
60
- sufia.asset_file_assets_path($1)
61
- when /the file asset creation page for (.*)$/i
62
- sufia.asset_file_assets_path($1)
63
- when /the deletable file list page for (.*)/i
64
- sufia.asset_file_assets_path($1, :deletable=>"true",:layout=>"false")
65
- when /the file asset (.*) with (.*) as its container$/i
66
- sufia.asset_file_asset_path($2, $1)
67
- when /the file asset (.*)$/i
68
- sufia.file_asset_path($1)
69
- when /the permissions page for (.*)$/i
70
- sufia.asset_permissions_path($1)
71
-
72
- when /new (.*) page$/i
73
- sufia.new_asset_path(:content_type => $1)
74
- when /the asset (.*)$/i
75
- sufia.asset_path($1)
76
- when /show asset page for (.*)$/i
77
- sufia.asset_path($1)
78
-
79
-
80
- when /the (\d+)(?:st|nd|rd|th) (person|organization|conference) entry in (.*)$/i
81
- # contributor_id = "#{$2}_#{$1.to_i-1}"
82
- sufia.asset_contributor_path($3, $2, $1.to_i-1, :content_type=>"mods_asset")
83
-
84
- when /the edit (.*) page for (.*)$/i
85
- sufia.edit_catalog_path($2,:wf_step=>$1)
86
- else
87
- begin
88
- page_name =~ /the (.*) page/
89
- path_components = $1.split(/\s+/)
90
- self.send(path_components.push('path').join('_').to_sym)
91
- rescue Object => e
92
- raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
93
- "Now, go and add a mapping in #{__FILE__}"
94
- end
95
- end
96
-
97
- end
98
-
99
- end
100
-
101
- World(NavigationHelpers)