sufia 4.0.0.beta3 → 4.0.0.beta4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -0
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia/search.js +4 -6
- data/app/assets/stylesheets/dashboard.css.scss +26 -0
- data/app/assets/stylesheets/header.css.scss +21 -12
- data/app/controllers/batch_controller.rb +0 -1
- data/app/controllers/collections_controller.rb +0 -1
- data/app/controllers/concerns/sufia/catalog.rb +0 -9
- data/app/controllers/concerns/sufia/controller.rb +4 -0
- data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +24 -74
- data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +0 -3
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +4 -13
- data/app/controllers/concerns/sufia/my_controller_behavior.rb +87 -0
- data/app/controllers/{dashboard → my}/collections_controller.rb +3 -2
- data/app/controllers/{dashboard → my}/files_controller.rb +3 -2
- data/app/controllers/{dashboard → my}/highlights_controller.rb +3 -2
- data/app/controllers/{dashboard → my}/shares_controller.rb +3 -2
- data/app/controllers/my_controller.rb +3 -0
- data/app/controllers/single_use_links_controller.rb +0 -2
- data/app/helpers/dashboard_helper.rb +3 -0
- data/app/helpers/generic_file_helper.rb +4 -4
- data/app/helpers/sufia/dashboard_helper_behavior.rb +25 -0
- data/app/helpers/sufia/sufia_helper_behavior.rb +44 -0
- data/app/jobs/content_delete_event_job.rb +2 -2
- data/app/models/concerns/sufia/solr_document_behavior.rb +5 -0
- data/app/views/_user_util_links.html.erb +5 -5
- data/app/views/catalog/_results_pagination.html.erb +1 -1
- data/app/views/catalog/_search_form.html.erb +56 -28
- data/app/views/collections/_dashboard_document_list.html.erb +1 -1
- data/app/views/collections/_document_list.html.erb +1 -1
- data/app/views/collections/edit.html.erb +8 -11
- data/app/views/collections/show.html.erb +2 -2
- data/app/views/collections/show_fields/_creator.html.erb +11 -0
- data/app/views/collections/show_fields/_description.html.erb +8 -0
- data/app/views/collections/show_fields/_title.html.erb +8 -0
- data/app/views/dashboard/_index_partials/_stats.html.erb +16 -0
- data/app/views/dashboard/_index_partials/_user_info.html.erb +18 -0
- data/app/views/dashboard/index.html.erb +51 -19
- data/app/views/generic_files/_show_descriptions.html.erb +11 -10
- data/app/views/generic_files/show.html.erb +1 -1
- data/app/views/generic_files/show_fields/_based_near.html.erb +7 -0
- data/app/views/generic_files/show_fields/_contributor.html.erb +7 -0
- data/app/views/generic_files/show_fields/_creator.html.erb +7 -0
- data/app/views/generic_files/show_fields/_date_created.html.erb +7 -0
- data/app/views/generic_files/show_fields/_default.html.erb +6 -12
- data/app/views/generic_files/show_fields/_description.html.erb +7 -0
- data/app/views/generic_files/show_fields/_identifier.html.erb +4 -0
- data/app/views/generic_files/show_fields/_language.html.erb +4 -0
- data/app/views/generic_files/show_fields/_publisher.html.erb +7 -0
- data/app/views/generic_files/show_fields/_related_url.html.erb +6 -0
- data/app/views/generic_files/show_fields/_resource_type.html.erb +4 -0
- data/app/views/generic_files/show_fields/_rights.html.erb +4 -0
- data/app/views/generic_files/show_fields/_subject.html.erb +7 -0
- data/app/views/generic_files/show_fields/_tag.html.erb +4 -0
- data/app/views/generic_files/show_fields/_title.html.erb +7 -0
- data/app/views/generic_files/upload/_form_fields.html.erb +4 -5
- data/app/views/generic_files/upload/_script_templates.html.erb +1 -2
- data/app/views/layouts/sufia-dashboard.html.erb +16 -30
- data/app/views/mailbox/_notifications.html.erb +21 -0
- data/app/views/mailbox/index.html.erb +2 -23
- data/app/views/{dashboard → my}/_action_menu.html.erb +0 -0
- data/app/views/{dashboard → my}/_batch_edits_actions.html.erb +0 -0
- data/app/views/{dashboard → my}/_collection_action_menu.html.erb +0 -0
- data/app/views/{dashboard → my}/_did_you_mean.html.erb +0 -0
- data/app/views/my/_document_list.html.erb +4 -0
- data/app/views/{dashboard → my}/_facet_layout.html.erb +0 -0
- data/app/views/{dashboard → my}/_facet_limit.html.erb +0 -0
- data/app/views/{dashboard → my}/_facet_pagination.html.erb +0 -0
- data/app/views/{dashboard → my}/_facet_selected.html.erb +0 -0
- data/app/views/{dashboard → my}/_facets.html.erb +0 -0
- data/app/views/{dashboard → my}/_index_partials/_default_group.html.erb +2 -2
- data/app/views/{dashboard → my}/_index_partials/_list_collections.html.erb +0 -0
- data/app/views/{dashboard → my}/_index_partials/_list_files.html.erb +0 -0
- data/app/views/{dashboard → my}/_results_pagination.html.erb +0 -0
- data/app/views/my/_scripts.js.erb +11 -0
- data/app/views/{dashboard → my}/_sort_and_per_page.html.erb +0 -0
- data/app/views/{dashboard → my}/facet.html.erb +0 -0
- data/app/views/{dashboard/lists → my}/index.html.erb +4 -20
- data/app/views/users/_user_info.html.erb +1 -1
- data/config/initializers/sufia_events.rb +19 -2
- data/config/locales/sufia.en.yml +27 -2
- data/config/routes.rb +7 -11
- data/lib/generators/sufia/sufia_generator.rb +15 -0
- data/lib/generators/sufia/templates/catalog_controller.rb +14 -14
- data/lib/sufia.rb +1 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +7 -16
- data/spec/controllers/dashboard_controller_spec.rb +63 -30
- data/spec/controllers/generic_files_controller_spec.rb +1 -1
- data/spec/controllers/{dashboard → my}/collections_controller_spec.rb +1 -15
- data/spec/controllers/my/files_controller_spec.rb +68 -0
- data/spec/controllers/{dashboard → my}/highlights_controller_spec.rb +1 -15
- data/spec/controllers/{dashboard → my}/shares_controller_spec.rb +1 -15
- data/spec/controllers/my_controller_spec.rb +9 -0
- data/spec/features/browse_dashboard_files_spec.rb +72 -26
- data/spec/features/collection_spec.rb +2 -4
- data/spec/features/display_dashboard_spec.rb +20 -26
- data/spec/features/search_spec.rb +25 -13
- data/spec/helpers/dashboard_helper_spec.rb +41 -0
- data/spec/helpers/sufia_helper_spec.rb +104 -3
- data/spec/jobs/event_jobs_spec.rb +1 -1
- data/spec/models/generic_file/web_form_spec.rb +3 -4
- data/spec/models/generic_file_spec.rb +47 -43
- data/spec/routing/route_spec.rb +10 -14
- data/spec/views/batch_edits/check_all_spec.rb +4 -4
- data/spec/views/catalog/sort_and_per_pange.html.erb_spec.rb +27 -0
- data/spec/views/dashboard/index_spec.rb +105 -0
- data/spec/views/{dashboard → my}/facet_limit.html.erb_spec.rb +2 -2
- data/sufia-models/app/actors/sufia/generic_file/actor.rb +23 -3
- data/sufia-models/app/models/concerns/sufia/generic_file.rb +0 -5
- data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +9 -2
- data/sufia-models/app/models/concerns/sufia/generic_file/web_form.rb +2 -2
- data/sufia-models/app/models/datastreams/generic_file_rdf_datastream.rb +1 -1
- data/sufia-models/app/services/sufia/noid.rb +21 -16
- data/sufia-models/lib/generators/sufia/models/install_generator.rb +2 -16
- data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +23 -0
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia-models/sufia-models.gemspec +1 -1
- data/vendor/assets/javascripts/fileupload/jquery.fileupload-ui.js +18 -10
- metadata +68 -45
- data/app/assets/images/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/glyphicons-halflings.png +0 -0
- data/app/controllers/dashboard/lists_controller.rb +0 -13
- data/app/views/dashboard/_constraints.html.erb +0 -6
- data/app/views/dashboard/_document_list.html.erb +0 -4
- data/app/views/dashboard/_heading.html.erb +0 -1
- data/app/views/dashboard/_search_form.html.erb +0 -14
- data/app/views/dashboard/_show_partials/_default.html.erb +0 -20
- data/app/views/dashboard/_show_partials/_default_details.html.erb +0 -15
- data/app/views/dashboard/_show_partials/_facets.html.erb +0 -87
- data/app/views/generic_files/_field_display.html.erb +0 -12
- data/spec/controllers/dashboard/files_controller_spec.rb +0 -71
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe My::SharesController do
|
4
4
|
describe "logged in user" do
|
5
5
|
before (:each) do
|
6
6
|
@user = FactoryGirl.find_or_create(:archivist)
|
@@ -29,11 +29,6 @@ describe Dashboard::SharesController do
|
|
29
29
|
it "should respond with success" do
|
30
30
|
get :index
|
31
31
|
expect(response).to be_successful
|
32
|
-
expect(response).to render_template('dashboard/lists/index')
|
33
|
-
end
|
34
|
-
|
35
|
-
it "sets the controller name" do
|
36
|
-
expect(controller.controller_name).to eq :dashboard
|
37
32
|
end
|
38
33
|
|
39
34
|
it "should paginate" do
|
@@ -66,13 +61,4 @@ describe Dashboard::SharesController do
|
|
66
61
|
end
|
67
62
|
end
|
68
63
|
|
69
|
-
describe "not logged in as a user" do
|
70
|
-
describe "#index" do
|
71
|
-
it "should return an error" do
|
72
|
-
get :index
|
73
|
-
expect(response).to be_redirect
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
64
|
end
|
78
|
-
|
@@ -1,42 +1,88 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe "Browse Dashboard
|
3
|
+
describe "Browse Dashboard" do
|
4
4
|
|
5
5
|
before do
|
6
6
|
@fixtures = find_or_create_file_fixtures
|
7
7
|
sign_in FactoryGirl.create :user_with_fixtures
|
8
8
|
end
|
9
9
|
|
10
|
-
it "should
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
page.should have_content "Download File"
|
15
|
-
fill_in "dashboard_search", with: "PDF"
|
16
|
-
click_button "dashboard_submit"
|
10
|
+
it "should search your files by deafult" do
|
11
|
+
visit "/dashboard"
|
12
|
+
fill_in "q", with: "PDF"
|
13
|
+
click_button "search-submit-header"
|
17
14
|
page.should have_content "Fake Document Title"
|
18
15
|
end
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
|
17
|
+
context "within my files page" do
|
18
|
+
|
19
|
+
before do
|
20
|
+
visit "dashboard/files"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should show me some files" do
|
24
|
+
page.should have_content "Edit File"
|
25
|
+
page.should have_content "Download File"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should allow you to search your own files" do
|
29
|
+
fill_in "q", with: "PDF"
|
30
|
+
click_button "search-submit-header"
|
31
|
+
page.should have_content "Fake Document Title"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should allow you to browse facets" do
|
35
|
+
pending "Issue #428 is causing this"
|
36
|
+
click_link "more Subjects"
|
37
|
+
click_link "consectetur"
|
38
|
+
save_and_open_page
|
39
|
+
within("#document_#{@fixtures[1].noid}") do
|
40
|
+
click_link "Test Document MP3.mp3"
|
41
|
+
end
|
42
|
+
page.should have_content "File Details"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should allow me to edit files (from the fixtures)" do
|
46
|
+
fill_in "q", with: "Wav"
|
47
|
+
click_button "search-submit-header"
|
48
|
+
click_button "Select an action"
|
49
|
+
click_link "Edit File"
|
50
|
+
page.should have_content "Edit Fake Wav File.wav"
|
51
|
+
end
|
52
|
+
|
31
53
|
end
|
32
54
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
55
|
+
context "within my collections page" do
|
56
|
+
before do
|
57
|
+
visit "dashboard/collections"
|
58
|
+
end
|
59
|
+
it "should search within my collections" do
|
60
|
+
within(".input-group-btn") do
|
61
|
+
page.should have_content("My Collections")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "within my highlights page" do
|
67
|
+
before do
|
68
|
+
visit "dashboard/highlights"
|
69
|
+
end
|
70
|
+
it "should search within my highlights" do
|
71
|
+
within(".input-group-btn") do
|
72
|
+
page.should have_content("My Highlights")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "within my shares page" do
|
78
|
+
before do
|
79
|
+
visit "dashboard/shares"
|
80
|
+
end
|
81
|
+
it "should search within my shares" do
|
82
|
+
within(".input-group-btn") do
|
83
|
+
page.should have_content("My Shares")
|
84
|
+
end
|
85
|
+
end
|
40
86
|
end
|
41
87
|
|
42
88
|
end
|
@@ -17,7 +17,7 @@ describe 'collection' do
|
|
17
17
|
let(:title2) {"Test Collection 2"}
|
18
18
|
let(:description2) {"Description for collection 2 we are testing."}
|
19
19
|
|
20
|
-
let(:user) { FactoryGirl.
|
20
|
+
let(:user) { FactoryGirl.find_or_create(:archivist) }
|
21
21
|
let(:user_key) { user.user_key }
|
22
22
|
|
23
23
|
before(:all) do
|
@@ -28,7 +28,7 @@ describe 'collection' do
|
|
28
28
|
(0..12).each do |x|
|
29
29
|
@gfs[x] = GenericFile.new.tap do |f|
|
30
30
|
f.title = "title #{x}"
|
31
|
-
f.apply_depositor_metadata('
|
31
|
+
f.apply_depositor_metadata('archivist1@example.com')
|
32
32
|
f.save!
|
33
33
|
end
|
34
34
|
end
|
@@ -43,7 +43,6 @@ describe 'collection' do
|
|
43
43
|
Collection.destroy_all
|
44
44
|
end
|
45
45
|
|
46
|
-
|
47
46
|
describe 'create collection' do
|
48
47
|
before do
|
49
48
|
sign_in user
|
@@ -79,7 +78,6 @@ describe 'collection' do
|
|
79
78
|
first(".itemtrash").click
|
80
79
|
end
|
81
80
|
page.should_not have_content(@collection.title)
|
82
|
-
page.should have_content("Dashboard")
|
83
81
|
end
|
84
82
|
end
|
85
83
|
|
@@ -1,41 +1,35 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe "Display Dashboard
|
3
|
+
describe "Display User Dashboard" do
|
4
4
|
|
5
5
|
before do
|
6
6
|
sign_in :user_with_fixtures
|
7
|
+
visit "/dashboard"
|
7
8
|
end
|
8
9
|
|
9
|
-
it "should
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
page.should have_content "Dashboard"
|
15
|
-
page.should have_content "You searched for: dash search"
|
16
|
-
find_field("search-field-header").value.should be_nil
|
10
|
+
it "should show the user's information" do
|
11
|
+
page.should have_content "My Dashboard"
|
12
|
+
page.should have_content "User Activity"
|
13
|
+
page.should have_content "User Notifications"
|
14
|
+
page.should have_content "Your Statistics"
|
17
15
|
end
|
18
16
|
|
19
|
-
it "should
|
20
|
-
click_link
|
21
|
-
click_link 'Upload File(s)'
|
17
|
+
it "should let the user upload files" do
|
18
|
+
click_link "Upload"
|
22
19
|
page.should have_content "Upload"
|
23
20
|
end
|
24
21
|
|
25
|
-
it "should
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
22
|
+
it "should let the user create collections" do
|
23
|
+
click_link "Create Collection"
|
24
|
+
page.should have_content "Create New Collection"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should let the user view files" do
|
28
|
+
click_link "View Files"
|
29
|
+
page.should have_content "Files"
|
30
|
+
page.should have_content "Collections"
|
31
|
+
page.should have_content "Highlighted"
|
32
|
+
page.should have_content "Shared with Me"
|
31
33
|
end
|
32
34
|
|
33
|
-
# @culerity
|
34
|
-
# Scenario: I have files on my dashboard I should see icons
|
35
|
-
# #Given I load sufia fixtures
|
36
|
-
# And I am logged in as "archivist1@example.com"
|
37
|
-
# And I follow "dashboard"
|
38
|
-
# Then I should see "Test Document Text"
|
39
|
-
# When I follow the link within "a[href='/files/test3'].itemtrash"
|
40
|
-
# Then I should see "The file has been deleted"
|
41
35
|
end
|
@@ -3,20 +3,32 @@ require 'spec_helper'
|
|
3
3
|
describe 'searching' do
|
4
4
|
before { GenericFile.destroy_all }
|
5
5
|
let!(:file) { FactoryGirl.create(:public_file, title: "Toothbrush") }
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
expect(page).to have_content "
|
6
|
+
|
7
|
+
context "as a public user" do
|
8
|
+
it "should find the file and have a gallery" do
|
9
|
+
visit '/'
|
10
|
+
fill_in "search-field-header", with: "Toothbrush"
|
11
|
+
click_button "search-submit-header"
|
12
|
+
expect(page).to have_content "1 entry found"
|
13
|
+
within "#search-results" do
|
14
|
+
expect(page).to have_content "Toothbrush"
|
15
|
+
end
|
16
|
+
|
17
|
+
click_link "Gallery"
|
18
|
+
expect(page).to have_content "You searched for: Toothbrush"
|
19
|
+
within "#documents" do
|
20
|
+
expect(page).to have_content "Toothbrush"
|
21
|
+
end
|
13
22
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
23
|
+
|
24
|
+
it "should not display search options for dashboard files" do
|
25
|
+
visit "/"
|
26
|
+
within(".input-group-btn") do
|
27
|
+
expect(page).to_not have_content("My Files")
|
28
|
+
expect(page).to_not have_content("My Collections")
|
29
|
+
expect(page).to_not have_content("My Shares")
|
30
|
+
end
|
19
31
|
end
|
32
|
+
|
20
33
|
end
|
21
34
|
end
|
22
|
-
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DashboardHelper do
|
4
|
+
|
5
|
+
describe "#render_recent_activity" do
|
6
|
+
context "when there is no activity" do
|
7
|
+
it "should return a messages stating the user has no recent activity" do
|
8
|
+
assign(:activity, [])
|
9
|
+
expect(helper.render_recent_activity).to include("no recent activity")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#render_recent_notifications" do
|
15
|
+
context "when there are no notifications" do
|
16
|
+
it "should return a messages stating the user has no recent notifications" do
|
17
|
+
assign(:notifications, [])
|
18
|
+
expect(helper.render_recent_notifications).to include("no notifications")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#on_the_dashboard?" do
|
24
|
+
it "should return false for controllers that aren't a part of the dashboard" do
|
25
|
+
allow(helper).to receive(:params).and_return({ controller: "foo" })
|
26
|
+
expect(helper.on_the_dashboard?).to be_false
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return true for controllers that are part of the dashboard" do
|
30
|
+
allow(helper).to receive(:params).and_return({ controller: "my/files" })
|
31
|
+
expect(helper.on_the_dashboard?).to be_true
|
32
|
+
allow(helper).to receive(:params).and_return({ controller: "my/collections" })
|
33
|
+
expect(helper.on_the_dashboard?).to be_true
|
34
|
+
allow(helper).to receive(:params).and_return({ controller: "my/highlights" })
|
35
|
+
expect(helper.on_the_dashboard?).to be_true
|
36
|
+
allow(helper).to receive(:params).and_return({ controller: "my/shares" })
|
37
|
+
expect(helper.on_the_dashboard?).to be_true
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -3,7 +3,9 @@ require 'spec_helper'
|
|
3
3
|
describe SufiaHelper do
|
4
4
|
|
5
5
|
describe "#link_to_facet_list" do
|
6
|
-
before
|
6
|
+
before do
|
7
|
+
allow(helper).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
|
8
|
+
end
|
7
9
|
|
8
10
|
context "with values" do
|
9
11
|
subject { helper.link_to_facet_list(['car', 'truck'], 'vehicle_type') }
|
@@ -28,12 +30,12 @@ describe SufiaHelper do
|
|
28
30
|
describe "has_collection_search_parameters?" do
|
29
31
|
subject { helper }
|
30
32
|
context "when cq is set" do
|
31
|
-
before { helper.
|
33
|
+
before { allow(helper).to receive(:params).and_return({ cq: 'foo'}) }
|
32
34
|
it { should have_collection_search_parameters }
|
33
35
|
end
|
34
36
|
|
35
37
|
context "when cq is not set" do
|
36
|
-
before { helper.
|
38
|
+
before { allow(helper).to receive(:params).and_return({ cq: ''}) }
|
37
39
|
it { should_not have_collection_search_parameters }
|
38
40
|
end
|
39
41
|
end
|
@@ -62,4 +64,103 @@ describe SufiaHelper do
|
|
62
64
|
end
|
63
65
|
end
|
64
66
|
end
|
67
|
+
|
68
|
+
describe "#link_to_telephone" do
|
69
|
+
|
70
|
+
before do
|
71
|
+
@user = mock_model(User)
|
72
|
+
allow(@user).to receive(:telephone).and_return('867-5309')
|
73
|
+
end
|
74
|
+
|
75
|
+
context "when @user is set" do
|
76
|
+
it "should return a link to the user's telephone" do
|
77
|
+
expect(helper.link_to_telephone).to eq("<a href=\"wtai://wp/mc;867-5309\">867-5309</a>")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "when @user is not set" do
|
82
|
+
it "should return a link to the user's telephone" do
|
83
|
+
expect(helper.link_to_telephone(@user)).to eq("<a href=\"wtai://wp/mc;867-5309\">867-5309</a>")
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "#current_search_parameters" do
|
90
|
+
|
91
|
+
context "when the user is not in the dashboard" do
|
92
|
+
it "should be whatever q is" do
|
93
|
+
allow(helper).to receive(:params).and_return({ controller: "catalog", q: "foo" })
|
94
|
+
expect(helper.current_search_parameters).to eq("foo")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context "when the user is on any dashboard page" do
|
99
|
+
|
100
|
+
it "should be ignored on dashboard" do
|
101
|
+
allow(helper).to receive(:params).and_return({ controller: "dashboard", q: "foo" })
|
102
|
+
expect(helper.current_search_parameters).to be_nil
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should be ignored on dashboard files, collections, highlights and shares" do
|
106
|
+
allow(helper).to receive(:params).and_return({ controller: "my/files", q: "foo" })
|
107
|
+
expect(helper.current_search_parameters).to be_nil
|
108
|
+
allow(helper).to receive(:params).and_return({ controller: "my/collections", q: "foo" })
|
109
|
+
expect(helper.current_search_parameters).to be_nil
|
110
|
+
allow(helper).to receive(:params).and_return({ controller: "my/highlights", q: "foo" })
|
111
|
+
expect(helper.current_search_parameters).to be_nil
|
112
|
+
allow(helper).to receive(:params).and_return({ controller: "my/shares", q: "foo" })
|
113
|
+
expect(helper.current_search_parameters).to be_nil
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#search_form_action" do
|
121
|
+
|
122
|
+
context "when the user is not in the dashboard" do
|
123
|
+
it "should return the catalog index path" do
|
124
|
+
allow(helper).to receive(:params).and_return({ controller: "foo" })
|
125
|
+
expect(helper.search_form_action).to eq(catalog_index_path)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "when the user is on the dashboard page" do
|
130
|
+
it "should default to My Files" do
|
131
|
+
allow(helper).to receive(:params).and_return({ controller: "dashboard" })
|
132
|
+
expect(helper.search_form_action).to eq(sufia.dashboard_files_path)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
context "when the user is on the my files page" do
|
137
|
+
it "should return the my dashboard files path" do
|
138
|
+
allow(helper).to receive(:params).and_return({ controller: "my/files" })
|
139
|
+
expect(helper.search_form_action).to eq(sufia.dashboard_files_path)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
context "when the user is on the my collections page" do
|
144
|
+
it "should return the my dashboard collections path" do
|
145
|
+
allow(helper).to receive(:params).and_return({ controller: "my/collections" })
|
146
|
+
expect(helper.search_form_action).to eq(sufia.dashboard_collections_path)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context "when the user is on the my highlights page" do
|
151
|
+
it "should return the my dashboard highlights path" do
|
152
|
+
allow(helper).to receive(:params).and_return({ controller: "my/highlights" })
|
153
|
+
expect(helper.search_form_action).to eq(sufia.dashboard_highlights_path)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context "when the user is on the my shares page" do
|
158
|
+
it "should return the my dashboard shares path" do
|
159
|
+
allow(helper).to receive(:params).and_return({ controller: "my/shares" })
|
160
|
+
expect(helper.search_form_action).to eq(sufia.dashboard_shares_path)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
|
65
166
|
end
|