diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/controllers/revisions_controller_test.rb | 13 | ||||
| -rw-r--r-- | test/models/page_test.rb | 43 |
2 files changed, 56 insertions, 0 deletions
diff --git a/test/controllers/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb index bf92c5b..53927b4 100644 --- a/test/controllers/revisions_controller_test.rb +++ b/test/controllers/revisions_controller_test.rb | |||
| @@ -148,4 +148,17 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 148 | assert_response :success | 148 | assert_response :success |
| 149 | assert_select "a", "Side by side" | 149 | assert_select "a", "Side by side" |
| 150 | end | 150 | end |
| 151 | |||
| 152 | test "diffing two revisions also shows tag, template, and asset changes" do | ||
| 153 | login_as :quentin | ||
| 154 | @node.find_or_create_draft(@user) | ||
| 155 | @node.draft.tag_list = "update" | ||
| 156 | @node.draft.save! | ||
| 157 | |||
| 158 | post(:diff, params: { :node_id => @node.id, :start_revision => @node.pages.first.revision, :end_revision => @node.pages.last.revision }) | ||
| 159 | assert_response :success | ||
| 160 | assert_select "h3", "Tags" | ||
| 161 | assert_select "h3", "Template" | ||
| 162 | assert_select "h3", "Assets" | ||
| 163 | end | ||
| 151 | end | 164 | end |
diff --git a/test/models/page_test.rb b/test/models/page_test.rb index 3868a53..bcddc89 100644 --- a/test/models/page_test.rb +++ b/test/models/page_test.rb | |||
| @@ -228,4 +228,47 @@ class PageTest < ActiveSupport::TestCase | |||
| 228 | assert_equal 2, fragment.css('ins.diff_structural').length | 228 | assert_equal 2, fragment.css('ins.diff_structural').length |
| 229 | assert_match "der Zugang erfolgt über den Hinterhof.", fragment.text | 229 | assert_match "der Zugang erfolgt über den Hinterhof.", fragment.text |
| 230 | end | 230 | end |
| 231 | |||
| 232 | test "diff_against reports tag and template changes" do | ||
| 233 | n = Node.root.children.create! :slug => "field_diff_test" | ||
| 234 | d = n.find_or_create_draft @user1 | ||
| 235 | d.tag_list = "update" | ||
| 236 | d.template_name = "standard_template" | ||
| 237 | d.save! | ||
| 238 | n.publish_draft! | ||
| 239 | |||
| 240 | d2 = n.find_or_create_draft @user1 | ||
| 241 | d2.tag_list = "update, pressemitteilung" | ||
| 242 | d2.template_name = "title_only" | ||
| 243 | d2.save! | ||
| 244 | |||
| 245 | diff = d2.diff_against(n.head) | ||
| 246 | |||
| 247 | assert_equal ["pressemitteilung"], diff[:tags][:added] | ||
| 248 | assert_equal [], diff[:tags][:removed] | ||
| 249 | assert diff[:template_name][:changed] | ||
| 250 | assert_equal "standard_template", diff[:template_name][:from] | ||
| 251 | assert_equal "title_only", diff[:template_name][:to] | ||
| 252 | end | ||
| 253 | |||
| 254 | test "diff_against reports added and removed assets by filename" do | ||
| 255 | n = Node.root.children.create! :slug => "asset_diff_test" | ||
| 256 | d = n.find_or_create_draft @user1 | ||
| 257 | d.save! | ||
| 258 | n.publish_draft! | ||
| 259 | |||
| 260 | kept_asset = Asset.create!(:upload_file_name => "kept.png", :upload_content_type => "image/png", :upload_file_size => 1) | ||
| 261 | removed_asset = Asset.create!(:upload_file_name => "removed.pdf", :upload_content_type => "application/pdf", :upload_file_size => 1) | ||
| 262 | n.head.update_assets([kept_asset.id, removed_asset.id]) | ||
| 263 | |||
| 264 | d2 = n.find_or_create_draft @user1 | ||
| 265 | added_asset = Asset.create!(:upload_file_name => "added.png", :upload_content_type => "image/png", :upload_file_size => 1) | ||
| 266 | d2.update_assets([kept_asset.id, added_asset.id]) | ||
| 267 | d2.save! | ||
| 268 | |||
| 269 | diff = d2.diff_against(n.head) | ||
| 270 | |||
| 271 | assert_equal [added_asset], diff[:assets][:added] | ||
| 272 | assert_equal [removed_asset], diff[:assets][:removed] | ||
| 273 | end | ||
| 231 | end | 274 | end |
