summaryrefslogtreecommitdiff
path: root/test/controllers/related_assets_controller_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/controllers/related_assets_controller_test.rb')
-rw-r--r--test/controllers/related_assets_controller_test.rb71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/controllers/related_assets_controller_test.rb b/test/controllers/related_assets_controller_test.rb
index 9d20cbb..ced4b74 100644
--- a/test/controllers/related_assets_controller_test.rb
+++ b/test/controllers/related_assets_controller_test.rb
@@ -88,4 +88,75 @@ class RelatedAssetsControllerTest < ActionController::TestCase
88 ordered_asset_ids = node.draft.reload.related_assets.map(&:asset_id) 88 ordered_asset_ids = node.draft.reload.related_assets.map(&:asset_id)
89 assert_equal [second.id, first.id], ordered_asset_ids 89 assert_equal [second.id, first.id], ordered_asset_ids
90 end 90 end
91
92 test "update sets the headline flag" do
93 login_as :quentin
94 node = Node.root.children.create!(:slug => "related_assets_headline_test")
95 asset = Asset.create!(:name => "headline-photo", :upload_content_type => "image/png")
96 node.draft.assets << asset
97 related = node.draft.related_assets.find_by(:asset_id => asset.id)
98
99 patch :update, params: { :node_id => node.id, :id => related.id, :headline => "true" }
100
101 assert_response :success
102 assert related.reload.headline?
103 end
104
105 test "update with headline=true clears any previous headline on the same page" do
106 login_as :quentin
107 node = Node.root.children.create!(:slug => "related_assets_headline_swap_test")
108 first = Asset.create!(:name => "first-headline", :upload_content_type => "image/png")
109 second = Asset.create!(:name => "second-headline", :upload_content_type => "image/png")
110 node.draft.assets << first
111 node.draft.assets << second
112
113 first_related = node.draft.related_assets.find_by(:asset_id => first.id)
114 second_related = node.draft.related_assets.find_by(:asset_id => second.id)
115 first_related.update!(:headline => true)
116
117 patch :update, params: { :node_id => node.id, :id => second_related.id, :headline => "true" }
118
119 assert_response :success
120 assert_not first_related.reload.headline?
121 assert second_related.reload.headline?
122 end
123
124 test "update with headline=false clears the headline" do
125 login_as :quentin
126 node = Node.root.children.create!(:slug => "related_assets_headline_unset_test")
127 asset = Asset.create!(:name => "unset-headline", :upload_content_type => "image/png")
128 node.draft.assets << asset
129 related = node.draft.related_assets.find_by(:asset_id => asset.id)
130 related.update!(:headline => true)
131
132 patch :update, params: { :node_id => node.id, :id => related.id, :headline => "false" }
133
134 assert_response :success
135 assert_not related.reload.headline?
136 end
137
138 test "search includes PDF assets as headline-eligible candidates" do
139 login_as :quentin
140 node = Node.root.children.create!(:slug => "related_assets_search_pdf_test")
141 asset = Asset.create!(:name => "expert-opinion-searchable", :upload_content_type => "application/pdf")
142
143 get :search, params: { :node_id => node.id, :search_term => "expert-opinion-searchable" }
144
145 assert_response :success
146 ids = JSON.parse(response.body).map { |r| r["id"] }
147 assert_includes ids, asset.id
148 end
149
150 test "search matches by filename as well as name" do
151 login_as :quentin
152 node = Node.root.children.create!(:slug => "related_assets_search_filename_test")
153 asset = Asset.create!(:name => "Untitled", :upload_content_type => "application/pdf",
154 :upload_file_name => "Stellungnahme_Patientendaten_Schutz.pdf")
155
156 get :search, params: { :node_id => node.id, :search_term => "Patientendaten" }
157
158 assert_response :success
159 ids = JSON.parse(response.body).map { |r| r["id"] }
160 assert_includes ids, asset.id
161 end
91end 162end