hydra-head 4.0.0.rc5 → 4.0.0.rc6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/HISTORY.textile +1 -1
  2. data/HOW_TO_GET_STARTED.textile +2 -2
  3. data/INSTALL_PREREQ.textile +1 -20
  4. data/README.textile +12 -16
  5. data/app/assets/stylesheets/hydra/html_refactor.css +1 -5
  6. data/app/assets/stylesheets/hydra/hydrangea.css +0 -4
  7. data/app/assets/stylesheets/hydra/styles.css +12 -595
  8. data/app/controllers/downloads_controller.rb +2 -1
  9. data/app/controllers/hydra/permissions_controller.rb +2 -6
  10. data/app/models/ability.rb +1 -98
  11. data/app/models/hydra/ability.rb +128 -0
  12. data/app/views/_flash_msg.html.erb +1 -1
  13. data/app/views/catalog/_home.html.erb +2 -2
  14. data/app/views/catalog/_home_text.html.erb +2 -8
  15. data/app/views/catalog/_show_partials/_default.html.erb +0 -4
  16. data/app/views/generic_images/_edit.html.erb +0 -2
  17. data/app/views/layouts/hydra-head.html.erb +22 -35
  18. data/lib/hydra-head/version.rb +1 -1
  19. data/lib/hydra/mods_article.rb +22 -2
  20. data/lib/railties/hydra-fixtures.rake +17 -24
  21. data/tasks/hydra-head-fixtures.rake +32 -28
  22. data/tasks/hydra-head.rake +39 -57
  23. data/{lib/railties → tasks}/hyhead_rspec.rake +7 -26
  24. data/test_support/features/file_upload.feature +3 -3
  25. data/test_support/features/step_definitions/edit_metadata_steps.rb +1 -1
  26. data/test_support/features/step_definitions/user_steps.rb +7 -4
  27. data/test_support/spec/models/ability_spec.rb +3 -9
  28. metadata +36 -51
  29. data/DEVELOP_PLUGIN.textile +0 -90
  30. data/GIT_WORKFLOW.textile +0 -106
  31. data/HOW_TO_DEFINE_A_HYDRA_CONTROLLER.textile +0 -21
  32. data/HOW_TO_DEFINE_A_HYDRA_MODEL.textile +0 -64
  33. data/HYDRA_ACCESS_CONTROLS.textile +0 -27
  34. data/INITIAL_APP_MODS.textile +0 -223
  35. data/README_RAILS3_CHANGES.textile +0 -67
  36. data/README_RAKE_TASKS.textile +0 -107
  37. data/README_SUBTREE.textile +0 -87
  38. data/README_TERSE.textile +0 -92
  39. data/RELEASE_NOTES.textile +0 -8
  40. data/TESTING.textile +0 -85
  41. data/TESTING_PLUGIN.textile +0 -133
  42. data/app/views/layouts/application.html.erb +0 -49
  43. data/lib/railties/all_tests.rake +0 -23
  44. data/lib/railties/hyhead_cucumber.rake +0 -126
@@ -1,133 +0,0 @@
1
- h1. Testing the hydra-head Plugin
2
-
3
- h2. I. Install the Testing Rails Application
4
-
5
- In order to run the tests, you need to have a properly configured rails app installed in the hydra-plugin_test_host directory. See "DEVELOP_PLUGIN":https://github.com/projecthydra/hydra-head/blob/master/DEVELOP_PLUGIN.textile for instructions on setting this up.
6
-
7
- h2. II. Running the full Continuous Integration build
8
-
9
- _Stop any copies of jetty (or anything else using port 8983) before running this command._
10
-
11
- This will spin up jetty pre-configured with Fedora and Solr on port 8983, import your fixtures into it, run the tests, and stop jetty.
12
-
13
- <pre>
14
- rake hyhead:ci RAILS_ENV=test
15
- </pre>
16
-
17
- h2. III. Running the Tests Manually
18
-
19
- h4. (1) Start Jetty, preloaded with Fedora and Solr applications
20
-
21
- See below to reset jetty when re-running tests, or when running a simultaneous development instance.
22
-
23
- _Stop any copies of jetty (or anything else using port 8983) before running this command._
24
-
25
- You must do this at the root of the <b><i>hydra-head plugin</i> directory</b>, not within the tmp/test_app_ directory.
26
-
27
- Note that java 1.6 must be invoked by the "java" command or Fedora won't work.
28
-
29
- <pre>
30
- rake hydra:jetty:load RAILS_ENV=test
31
- </pre>
32
-
33
- This will start up jetty on port 8983.
34
-
35
- h4. (2) Load test fixtures into Fedora/Solr.
36
-
37
- You must do this at the root of the <b><i>hydra-head plugin</i> directory</b>, not within the tmp/test_app directory.
38
-
39
- NOTE: to ensure that the tests do not rely on non-test data, do this first:
40
-
41
- <pre>
42
- rake hydra:default_fixtures:delete
43
- </pre>
44
-
45
- <pre>
46
- rake hydra:default_fixtures:refresh environment=test
47
- </pre>
48
-
49
- (TO DO: get rid of irrelevant fixtures; get rid of non-generic fixtures.)
50
-
51
- h4. (3) Run specs.
52
-
53
- <pre>
54
- rake hyhead:spec
55
- </pre>
56
-
57
- OR
58
-
59
- <pre>
60
- rake hyhead:setup_test_app
61
- rake hyhead:spec
62
- </pre>
63
-
64
-
65
- h2. If you need to Re-run the tests:
66
-
67
- h4. Clean out and reload the databases:
68
-
69
- <pre>
70
- cd hydra-plugin_test_host
71
- rake db:drop RAILS_ENV=test
72
- or
73
- rake db:drop:all (to ensure that the tests do not rely on non-test data)
74
- rake db:migrate RAILS_ENV=test
75
- cd ..
76
- </pre>
77
-
78
-
79
- h2. Don't forget to stop Jetty!
80
-
81
- It's easy to forget a running jetty, start another jetty process,
82
- and then get confusing behavior because you have two jetty instances on the
83
- same port.
84
-
85
- To stop jetty:
86
- From the rails application directory (my-hydra-head-test-app)
87
-
88
- <pre>
89
- rake jetty:stop
90
- </pre>
91
-
92
- Use ps to ensure the java process has stopped. If not, kill it manually.
93
-
94
- h4. Clean out and reload the fixtures:
95
-
96
- 1. Stop jetty
97
-
98
- <pre>
99
- rake jetty:stop
100
- </pre>
101
-
102
- Use ps to ensure the java process has stopped. If not, kill it manually.
103
-
104
- 2. Clean out Solr and Fedora on Jetty
105
-
106
- (Note: this will also wipe out the development data until we use the single solr instance of hydra-jetty)
107
-
108
- TODO: can this be a single rake task?
109
-
110
- <pre>
111
- cd jetty
112
- git clean -df
113
- git checkout .
114
- git status should show nothing to commit
115
- cd .. (back to root of the _plugin_)
116
- </pre>
117
-
118
- 3. Re-initialize and start Jetty:
119
-
120
- <pre>
121
- rake hydra:jetty:load RAILS_ENV=test
122
- </pre>
123
-
124
- 4. Reload the pristine fixtures.
125
- NOTE: to ensure that the tests do not rely on non-test data, do this first:
126
-
127
- <pre>
128
- rake hydra:default_fixtures:delete
129
- </pre>
130
-
131
- <pre>
132
- rake hydra:default_fixtures:refresh environment=test
133
- </pre>
@@ -1,49 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
4
- <!--[if IE 7 ]> <html class="ie7"> <![endif]-->
5
- <!--[if IE 8 ]> <html class="ie8"> <![endif]-->
6
- <!--[if IE 9 ]> <html class="ie9"> <![endif]-->
7
- <!--[if gt IE 9]> <html> <![endif]-->
8
- <!--[if !IE]><!--> <html> <!--<![endif]-->
9
-
10
- <head>
11
- <meta charset="utf-8" />
12
-
13
- <title><%= h(@page_title || application_name) %></title>
14
- <link href="<%= url_for :controller=>'catalog',:action => 'opensearch', :format => 'xml', :only_path => false %>" title="<%= application_name%>" type="application/opensearchdescription+xml" rel="search"/>
15
-
16
- <%= render_head_content %>
17
-
18
- <!--[if IE]>
19
- <%= stylesheet_link_tag('hydra/ie-styles', {:plugin=>"hydra-head", :media=>'all'}) %>
20
- <%= stylesheet_link_tag('progressBox-ie6.css', {:plugin=>"hydra-head", :media=>'all'}) %>
21
- <![endif]-->
22
- </head>
23
-
24
- <body class="<%= render_body_class %>">
25
-
26
- <div id="doc4" class="yui-t2">
27
-
28
- <div id="hd">
29
- <%= render :partial => '/user_util_links' %>
30
- <%= (params[:controller] == "catalog" and !params[:id]) ? "<span id='results_text'>Search Results</span>".html_safe : "" %>
31
- </div>
32
-
33
- <div id="bd">
34
- <div id="yui-main">
35
- <%= render :partial=>'/flash_msg' %>
36
- <%= yield %>
37
- </div>
38
- <div class="yui-b sidebar"><%= sidebar_items.join('') %></div>
39
- </div>
40
-
41
-
42
- <div id="footer">
43
- <div id="hydra_logo"><%= image_tag('hydra/powered_by_hydra.png', :plugin=>"hydra-head", :width => 80, :height => 50, :alt => "Hydra logo") %></div>
44
- </div>
45
-
46
- </div>
47
- </body>
48
-
49
- </html>
@@ -1,23 +0,0 @@
1
- namespace :hyhead do
2
- begin
3
- require 'cucumber/rake/task'
4
- require 'rspec/core'
5
- require 'rspec/core/rake_task'
6
-
7
- desc "Run HydraHead cucumber and rspec, with test solr"
8
- task :all_tests => ['hyhead:spec:with_solr', 'hyhead:cucumber:with_solr']
9
-
10
- namespace :all_tests do
11
- desc "Run HydraHead rspec and cucumber tests with rcov"
12
- rm "hyhead-coverage.data" if File.exist?("hyhead-coverage.data")
13
- task :rcov => ['hyhead:spec:rcov', 'hyhead:cucumber:rcov']
14
- end
15
-
16
- rescue LoadError
17
- desc "Not available! (cucumber and rspec not avail)"
18
- task :all_tests do
19
- abort 'Not available. Both cucumber and rspec need to be installed to run hyhead:all_tests'
20
- end
21
- end
22
- end
23
-
@@ -1,126 +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
-
7
- # Blacklight customization, trick Cucumber into looking in our current
8
- # location for Rails.root, even though we're going to give it features
9
- # from elsewhere.
10
- ENV['RAILS_ROOT'] = Rails.root.to_s
11
-
12
- # hyhead_features, where to find features inside hyhead source?
13
- hyhead_features = File.expand_path("./test_support/features",HydraHead.root)
14
-
15
- unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
16
-
17
- vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
18
- $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
19
-
20
- begin
21
- require 'cucumber/rake/task'
22
-
23
- namespace :hyhead do
24
- desc 'Alias for hyhead:cucumber:ok'
25
- task :cucumber => 'hyhead:cucumber:ok'
26
-
27
- namespace :cucumber do
28
- Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
29
- # Blacklight customization, call features from external location, pass
30
- # in feature location wtih cucumber_opts, yeah it's weird but that's how.
31
- t.cucumber_opts = hyhead_features
32
-
33
- t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
34
- t.fork = true # You may get faster startup if you set this to false
35
- t.profile = 'default'
36
- end
37
-
38
- Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
39
- # Blacklight customization, call features from external location, pass
40
- # in feature location wtih cucumber_opts, yeah it's weird but that's how.
41
- t.cucumber_opts = hyhead_features
42
-
43
-
44
- t.binary = vendored_cucumber_bin
45
- t.fork = true # You may get faster startup if you set this to false
46
- t.profile = 'wip'
47
- end
48
-
49
- Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
50
- # Blacklight customization, call features from external location, pass
51
- # in feature location wtih cucumber_opts, yeah it's weird but that's how.
52
- t.cucumber_opts = hyhead_features
53
-
54
- t.binary = vendored_cucumber_bin
55
- t.fork = true # You may get faster startup if you set this to false
56
- t.profile = 'rerun'
57
- end
58
-
59
- if (RUBY_VERSION.to_f < 1.9) then
60
- Cucumber::Rake::Task.new({:rcov => 'db:test:prepare'}, 'Run features with rcov') do |t|
61
- # Blacklight customization, call features from external location, pass
62
- # in feature location wtih cucumber_opts, yeah it's weird but that's how.
63
- t.cucumber_opts = hyhead_features
64
-
65
-
66
- t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
67
- t.fork = true # You may get faster startup if you set this to false
68
- t.profile = 'default'
69
- t.rcov = true
70
- t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/,features\/ --aggregate hyhead-coverage.data}
71
- t.rcov_opts << %[-o "#{HydraHead.root}/coverage"]
72
- end
73
- end
74
-
75
- desc 'Run all features'
76
- task :all => [:ok, :wip]
77
-
78
-
79
- # Solr wrapper. for now just for hyhead:cucumber, plan to
80
- # provide it for all variants eventually.
81
- # if you would like to see solr startup messages on STDERR
82
- # when starting solr test server during functional tests use:
83
- #
84
- # rake SOLR_CONSOLE=true
85
- require File.expand_path('../jetty_solr_server.rb', __FILE__)
86
- desc "hyhead:cucumber with jetty/solr launch"
87
- task :with_solr do
88
- # wrap tests with a test-specific Solr server
89
- # Need to look up where the test jetty is located
90
- # from solr.yml, we don't hardcode it anymore.
91
-
92
- solr_yml_path = locate_path("config", "solr.yml")
93
- jetty_path = if ( File.exists?( solr_yml_path ))
94
- solr_config = YAML::load(File.open(solr_yml_path))
95
- solr_config["test"]["jetty_path"] if solr_config["test"]
96
- end
97
- raise Exception.new("Can't find jetty path to start test jetty. Expect a jetty_path key in config/solr.yml for test environment.") unless jetty_path
98
-
99
- JettySolrServer.new(
100
- :jetty_home => File.expand_path(jetty_path, Rails.root),
101
- :sleep_after_start => 2).wrap do
102
- Rake::Task["hyhead:cucumber"].invoke
103
- end
104
- end
105
-
106
- end
107
- end
108
-
109
-
110
-
111
-
112
- task :features => :cucumber do
113
- STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
114
- end
115
-
116
- # In case we don't have ActiveRecord, append a no-op task that we can depend upon.
117
- task 'db:test:prepare' do
118
- end
119
- rescue LoadError
120
- desc 'cucumber rake task not available (cucumber not installed)'
121
- task :cucumber do
122
- abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
123
- end
124
- end
125
-
126
- end