summaryrefslogtreecommitdiff
path: root/test/models
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-14 14:31:18 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-14 14:31:18 +0200
commitcca0e57b21d506cd341b927984bcb68f0e461783 (patch)
tree2d49cf1b678a3f5cf0fd20cd214b20524027ec50 /test/models
parent6b302d263ac66b521a743f1e8e1cc82997b54b5d (diff)
Retire wipe_draft! and find_or_create_draft from production code
Both had already lost their reason to exist as production API: wipe_draft!'s one remaining callsite (nodes#show) was removed two sessions ago, and find_or_create_draft had zero production callers left at all -- confirmed by a fresh grep, not assumed -- every one of its ~65 call sites was test setup, unrelated to what those tests actually cover. wipe_draft! is deleted outright, along with its two tests -- the lock/draft/autosave cleanup it silently performed already has explicit, always-visible manual equivalents (Unlock, Discard Autosave, Destroy Draft), so nothing real is lost. find_or_create_draft moves to test_helper.rb as a plain method on ActiveSupport::TestCase, alongside the create_node_with_draft/ create_node_with_published_page helpers already living there -- extending the framework's own designated test-extension point rather than reopening the Node model from test code. Its three tests of real dispatch behavior (idempotency on repeat calls, and raising when a second user contends for the lock) are kept, since ~65 other tests depend on this helper actually working correctly; only the call syntax changed, from node.find_or_create_draft(user) to find_or_create_draft(node, user).
Diffstat (limited to 'test/models')
-rw-r--r--test/models/event_test.rb2
-rw-r--r--test/models/node_test.rb63
-rw-r--r--test/models/page_test.rb52
3 files changed, 46 insertions, 71 deletions
diff --git a/test/models/event_test.rb b/test/models/event_test.rb
index e98605e..2a671b7 100644
--- a/test/models/event_test.rb
+++ b/test/models/event_test.rb
@@ -5,7 +5,7 @@ class EventTest < ActiveSupport::TestCase
5 def setup 5 def setup
6 Page.delete_all 6 Page.delete_all
7 @cal_node = Node.root.children.create! :slug => "calendar" 7 @cal_node = Node.root.children.create! :slug => "calendar"
8 @draft = @cal_node.find_or_create_draft User.first 8 @draft = find_or_create_draft(@cal_node, User.first)
9 @draft.title = "99C3" 9 @draft.title = "99C3"
10 @draft.abstract = "The 99th Chaos Comunication Congress" 10 @draft.abstract = "The 99th Chaos Comunication Congress"
11 @draft.body = "Its totally freakin awesome" 11 @draft.body = "Its totally freakin awesome"
diff --git a/test/models/node_test.rb b/test/models/node_test.rb
index 91a4a6d..959387d 100644
--- a/test/models/node_test.rb
+++ b/test/models/node_test.rb
@@ -31,7 +31,7 @@ class NodeTest < ActiveSupport::TestCase
31 assert_nil test_node.draft.user 31 assert_nil test_node.draft.user
32 32
33 3.times do 33 3.times do
34 test_node.find_or_create_draft @user1 34 find_or_create_draft(test_node, @user1)
35 end 35 end
36 36
37 assert_equal 1, test_node.pages.length 37 assert_equal 1, test_node.pages.length
@@ -40,7 +40,7 @@ class NodeTest < ActiveSupport::TestCase
40 def test_user_gets_assigned_to_unlocked_draft 40 def test_user_gets_assigned_to_unlocked_draft
41 assert_not_nil @first_child.draft 41 assert_not_nil @first_child.draft
42 assert_nil @first_child.draft.user 42 assert_nil @first_child.draft.user
43 @first_child.find_or_create_draft @user1 43 find_or_create_draft(@first_child, @user1)
44 assert_equal @user1, @first_child.lock_owner 44 assert_equal @user1, @first_child.lock_owner
45 end 45 end
46 46
@@ -77,7 +77,7 @@ class NodeTest < ActiveSupport::TestCase
77 77
78 @first_child.publish_draft! 78 @first_child.publish_draft!
79 79
80 draft1 = @first_child.find_or_create_draft(@user1) 80 draft1 = find_or_create_draft(@first_child, @user1)
81 81
82 I18n.locale = :de 82 I18n.locale = :de
83 assert_equal "Hallo", draft1.title 83 assert_equal "Hallo", draft1.title
@@ -109,15 +109,15 @@ class NodeTest < ActiveSupport::TestCase
109 def test_find_or_create_draft_if_no_draft_exists 109 def test_find_or_create_draft_if_no_draft_exists
110 node = Node.root.children.create :slug => "xyz" 110 node = Node.root.children.create :slug => "xyz"
111 node.publish_draft! 111 node.publish_draft!
112 assert_not_nil node.find_or_create_draft( @user1 ) 112 assert_not_nil find_or_create_draft(node, @user1)
113 end 113 end
114 114
115 def test_find_or_create_draft_if_draft_exists_and_is_owned_by_user 115 def test_find_or_create_draft_if_draft_exists_and_is_owned_by_user
116 node = Node.root.children.create :slug => "xyz" 116 node = Node.root.children.create :slug => "xyz"
117 node.publish_draft! 117 node.publish_draft!
118 118
119 first_call = node.find_or_create_draft @user1 119 first_call = find_or_create_draft(node, @user1)
120 second_call = node.find_or_create_draft @user1 120 second_call = find_or_create_draft(node, @user1)
121 121
122 assert_equal first_call, second_call 122 assert_equal first_call, second_call
123 assert_equal 2, node.pages.count 123 assert_equal 2, node.pages.count
@@ -127,10 +127,10 @@ class NodeTest < ActiveSupport::TestCase
127 def test_exception_if_draft_exists_but_locked_by_another_user 127 def test_exception_if_draft_exists_but_locked_by_another_user
128 node = Node.root.children.create :slug => "xyz" 128 node = Node.root.children.create :slug => "xyz"
129 node.publish_draft! 129 node.publish_draft!
130 node.find_or_create_draft @user1 130 find_or_create_draft(node, @user1)
131 assert_equal @user1, node.lock_owner 131 assert_equal @user1, node.lock_owner
132 assert_raise(LockedByAnotherUser) do 132 assert_raise(LockedByAnotherUser) do
133 node.find_or_create_draft @user2 133 find_or_create_draft(node, @user2)
134 end 134 end
135 end 135 end
136 136
@@ -222,7 +222,7 @@ class NodeTest < ActiveSupport::TestCase
222 assert_equal 1, test_node.pages.length 222 assert_equal 1, test_node.pages.length
223 assert_not_nil test_node.head 223 assert_not_nil test_node.head
224 assert_nil test_node.draft 224 assert_nil test_node.draft
225 test_node.find_or_create_draft @user1 225 find_or_create_draft(test_node, @user1)
226 test_node.reload 226 test_node.reload
227 assert_equal 2, test_node.pages.length 227 assert_equal 2, test_node.pages.length
228 assert_not_nil test_node.draft 228 assert_not_nil test_node.draft
@@ -232,7 +232,7 @@ class NodeTest < ActiveSupport::TestCase
232 test "restoring a revision" do 232 test "restoring a revision" do
233 test_node = Node.root.children.create! :slug => "test_node" 233 test_node = Node.root.children.create! :slug => "test_node"
234 create_revisions( test_node, 3 ) 234 create_revisions( test_node, 3 )
235 test_node.find_or_create_draft @user1 235 find_or_create_draft(test_node, @user1)
236 test_node.reload 236 test_node.reload
237 237
238 assert_equal 4, test_node.pages.count 238 assert_equal 4, test_node.pages.count
@@ -250,7 +250,7 @@ class NodeTest < ActiveSupport::TestCase
250 draft.user = users(:aaron) 250 draft.user = users(:aaron)
251 draft.save 251 draft.save
252 node.publish_draft! 252 node.publish_draft!
253 new_draft = node.find_or_create_draft( users(:quentin) ) 253 new_draft = find_or_create_draft(node, users(:quentin))
254 assert_equal "aaron", new_draft.user.login 254 assert_equal "aaron", new_draft.user.login
255 end 255 end
256 256
@@ -261,7 +261,7 @@ class NodeTest < ActiveSupport::TestCase
261 draft.user = users(:aaron) 261 draft.user = users(:aaron)
262 draft.save! 262 draft.save!
263 node.publish_draft! 263 node.publish_draft!
264 new_draft = node.find_or_create_draft( users(:quentin) ) 264 new_draft = find_or_create_draft(node, users(:quentin))
265 new_draft.user_id = users(:quentin).id 265 new_draft.user_id = users(:quentin).id
266 new_draft.save 266 new_draft.save
267 node.publish_draft! 267 node.publish_draft!
@@ -359,31 +359,6 @@ class NodeTest < ActiveSupport::TestCase
359 assert_equal @user1, node.reload.lock_owner 359 assert_equal @user1, node.reload.lock_owner
360 end 360 end
361 361
362 test "wipe_draft! leaves a fresh autosave and its lock untouched" do
363 node = create_node_with_published_page
364 node.lock_for_editing!(@user1)
365 node.autosave!({ :title => "still typing" }, @user1)
366
367 node.wipe_draft!
368 node.reload
369
370 assert_not_nil node.autosave
371 assert_equal @user1, node.lock_owner
372 end
373
374 test "wipe_draft! destroys a stale, orphaned autosave and releases its lock" do
375 node = create_node_with_published_page
376 node.lock_for_editing!(@user1)
377 node.autosave!({ :title => "abandoned mid-session" }, @user1)
378 node.autosave.update_column(:updated_at, 2.days.ago)
379
380 node.wipe_draft!
381 node.reload
382
383 assert_nil node.autosave
384 assert_nil node.lock_owner
385 end
386
387 test "revert! is a safe no-op on a fresh node with only a draft" do 362 test "revert! is a safe no-op on a fresh node with only a draft" do
388 node = create_node_with_draft 363 node = create_node_with_draft
389 node.lock_for_editing!(@user1) 364 node.lock_for_editing!(@user1)
@@ -473,7 +448,7 @@ class NodeTest < ActiveSupport::TestCase
473 448
474 def create_revisions node, count 449 def create_revisions node, count
475 count.times do 450 count.times do
476 node.find_or_create_draft @user1 451 find_or_create_draft(node, @user1)
477 node.publish_draft! 452 node.publish_draft!
478 end 453 end
479 end 454 end
@@ -514,7 +489,7 @@ class NodeTest < ActiveSupport::TestCase
514 489
515 test "editor_search matches a partial substring, not just a whole word" do 490 test "editor_search matches a partial substring, not just a whole word" do
516 node = Node.root.children.create!(:slug => "editor_search_substring_test") 491 node = Node.root.children.create!(:slug => "editor_search_substring_test")
517 node.find_or_create_draft(@user1) 492 find_or_create_draft(node, @user1)
518 node.draft.update(:title => "Biometrics Conference") 493 node.draft.update(:title => "Biometrics Conference")
519 node.publish_draft! 494 node.publish_draft!
520 495
@@ -530,7 +505,7 @@ class NodeTest < ActiveSupport::TestCase
530 505
531 test "editor_search requires every word to match, but each word can match a different field" do 506 test "editor_search requires every word to match, but each word can match a different field" do
532 node = Node.root.children.create!(:slug => "editor_search_multiword_test") 507 node = Node.root.children.create!(:slug => "editor_search_multiword_test")
533 node.find_or_create_draft(@user1) 508 find_or_create_draft(node, @user1)
534 node.draft.update(:title => "Backspace e.V. Bamberg", :abstract => "Spiegelgraben 41, 96052 Bamberg") 509 node.draft.update(:title => "Backspace e.V. Bamberg", :abstract => "Spiegelgraben 41, 96052 Bamberg")
535 node.publish_draft! 510 node.publish_draft!
536 511
@@ -540,9 +515,9 @@ class NodeTest < ActiveSupport::TestCase
540 515
541 test "drafts_and_autosaves without a user sorts by recency only" do 516 test "drafts_and_autosaves without a user sorts by recency only" do
542 older = Node.root.children.create!(:slug => "drafts_order_older") 517 older = Node.root.children.create!(:slug => "drafts_order_older")
543 older.find_or_create_draft(@user1) 518 find_or_create_draft(older, @user1)
544 newer = Node.root.children.create!(:slug => "drafts_order_newer") 519 newer = Node.root.children.create!(:slug => "drafts_order_newer")
545 newer.find_or_create_draft(@user1) 520 find_or_create_draft(newer, @user1)
546 521
547 result = Node.drafts_and_autosaves.to_a 522 result = Node.drafts_and_autosaves.to_a
548 assert result.index(newer) < result.index(older) 523 assert result.index(newer) < result.index(older)
@@ -564,7 +539,7 @@ class NodeTest < ActiveSupport::TestCase
564 539
565 test "recently_changed includes a node whose head was recently published" do 540 test "recently_changed includes a node whose head was recently published" do
566 node = Node.root.children.create!(:slug => "recent_changed_published") 541 node = Node.root.children.create!(:slug => "recent_changed_published")
567 node.find_or_create_draft(@user1) 542 find_or_create_draft(node, @user1)
568 node.autosave!({:title => "v1"}, @user1) 543 node.autosave!({:title => "v1"}, @user1)
569 node.save_draft!(@user1) 544 node.save_draft!(@user1)
570 node.publish_draft! 545 node.publish_draft!
@@ -574,7 +549,7 @@ class NodeTest < ActiveSupport::TestCase
574 549
575 test "recently_changed excludes a node only touched by locking or unlocking after an old publish" do 550 test "recently_changed excludes a node only touched by locking or unlocking after an old publish" do
576 node = Node.root.children.create!(:slug => "recent_changed_lock_only") 551 node = Node.root.children.create!(:slug => "recent_changed_lock_only")
577 node.find_or_create_draft(@user1) 552 find_or_create_draft(node, @user1)
578 node.autosave!({:title => "v1"}, @user1) 553 node.autosave!({:title => "v1"}, @user1)
579 node.save_draft!(@user1) 554 node.save_draft!(@user1)
580 node.publish_draft! 555 node.publish_draft!
diff --git a/test/models/page_test.rb b/test/models/page_test.rb
index 24bc7c5..edb7c37 100644
--- a/test/models/page_test.rb
+++ b/test/models/page_test.rb
@@ -13,15 +13,15 @@ class PageTest < ActiveSupport::TestCase
13 n2 = Node.root.children.create! :slug => "two" 13 n2 = Node.root.children.create! :slug => "two"
14 14
15 # get the drafts and assign a user to it 15 # get the drafts and assign a user to it
16 assert_not_nil d1 = n1.find_or_create_draft( @user1 ) 16 assert_not_nil d1 = find_or_create_draft(n1, @user1)
17 assert_not_nil d3 = n2.find_or_create_draft( @user1 ) 17 assert_not_nil d3 = find_or_create_draft(n2, @user1)
18 18
19 # tag and double publish so we have 4 pages tagged with "update" 19 # tag and double publish so we have 4 pages tagged with "update"
20 d1.tag_list = "update" 20 d1.tag_list = "update"
21 d1.save 21 d1.save
22 n1.publish_draft! 22 n1.publish_draft!
23 23
24 d2 = n1.find_or_create_draft @user1 24 d2 = find_or_create_draft(n1, @user1)
25 n1.publish_draft! 25 n1.publish_draft!
26 26
27 27
@@ -29,7 +29,7 @@ class PageTest < ActiveSupport::TestCase
29 d3.save 29 d3.save
30 n2.publish_draft! 30 n2.publish_draft!
31 31
32 d4 = n2.find_or_create_draft @user1 32 d4 = find_or_create_draft(n2, @user1)
33 n2.publish_draft! 33 n2.publish_draft!
34 34
35 # Set up two options hashes for the assertions 35 # Set up two options hashes for the assertions
@@ -49,7 +49,7 @@ class PageTest < ActiveSupport::TestCase
49 49
50 def test_before_save_rewrite_links_in_body 50 def test_before_save_rewrite_links_in_body
51 n = Node.root.children.create :slug => "link_test" 51 n = Node.root.children.create :slug => "link_test"
52 d = n.find_or_create_draft @user1 52 d = find_or_create_draft(n, @user1)
53 53
54 before = "<h1>Hello World</h1>\n" \ 54 before = "<h1>Hello World</h1>\n" \
55 "<a href=\"/club\" target=\"_blank\">Linkme</a>" 55 "<a href=\"/club\" target=\"_blank\">Linkme</a>"
@@ -67,7 +67,7 @@ class PageTest < ActiveSupport::TestCase
67 67
68 def test_before_save_rewrite_links_in_body_if_no_locale_prefix_present 68 def test_before_save_rewrite_links_in_body_if_no_locale_prefix_present
69 n = Node.root.children.create :slug => "link_test" 69 n = Node.root.children.create :slug => "link_test"
70 d = n.find_or_create_draft @user1 70 d = find_or_create_draft(n, @user1)
71 71
72 before = "<h1>Hello World</h1>\n" \ 72 before = "<h1>Hello World</h1>\n" \
73 "<a href=\"/de/club\" target=\"_blank\">Linkme</a>" 73 "<a href=\"/de/club\" target=\"_blank\">Linkme</a>"
@@ -85,7 +85,7 @@ class PageTest < ActiveSupport::TestCase
85 85
86 def test_before_save_rewrite_links_skips_on_external_links 86 def test_before_save_rewrite_links_skips_on_external_links
87 n = Node.root.children.create :slug => "link_test" 87 n = Node.root.children.create :slug => "link_test"
88 d = n.find_or_create_draft @user1 88 d = find_or_create_draft(n, @user1)
89 89
90 before = "<h1>Hello World</h1>\n" \ 90 before = "<h1>Hello World</h1>\n" \
91 "<a href=\"http://www.ccc.de/club\" target=\"_blank\">Linkme</a>" 91 "<a href=\"http://www.ccc.de/club\" target=\"_blank\">Linkme</a>"
@@ -145,7 +145,7 @@ class PageTest < ActiveSupport::TestCase
145 145
146 test "a page scheduled for future publication is not yet public even after being published" do 146 test "a page scheduled for future publication is not yet public even after being published" do
147 node = Node.root.children.create!(slug: "preview-scheduled-test") 147 node = Node.root.children.create!(slug: "preview-scheduled-test")
148 draft = node.find_or_create_draft(@user1) 148 draft = find_or_create_draft(node, @user1)
149 draft.title = "Scheduled test" 149 draft.title = "Scheduled test"
150 draft.published_at = 1.day.from_now 150 draft.published_at = 1.day.from_now
151 draft.save! 151 draft.save!
@@ -160,13 +160,13 @@ class PageTest < ActiveSupport::TestCase
160 160
161 test "a superseded page is no longer the head, even though it was once published" do 161 test "a superseded page is no longer the head, even though it was once published" do
162 node = Node.root.children.create!(slug: "preview-superseded-test") 162 node = Node.root.children.create!(slug: "preview-superseded-test")
163 first_draft = node.find_or_create_draft(@user1) 163 first_draft = find_or_create_draft(node, @user1)
164 first_draft.title = "First version" 164 first_draft.title = "First version"
165 first_draft.save! 165 first_draft.save!
166 first_token = first_draft.ensure_preview_token! 166 first_token = first_draft.ensure_preview_token!
167 node.publish_draft! 167 node.publish_draft!
168 168
169 second_draft = node.find_or_create_draft(@user1) 169 second_draft = find_or_create_draft(node, @user1)
170 second_draft.title = "Second version" 170 second_draft.title = "Second version"
171 second_draft.save! 171 second_draft.save!
172 node.publish_draft! 172 node.publish_draft!
@@ -229,12 +229,12 @@ class PageTest < ActiveSupport::TestCase
229 229
230 def test_diff_against_inline_keeps_tags_and_marks_only_the_changed_word 230 def test_diff_against_inline_keeps_tags_and_marks_only_the_changed_word
231 n = Node.root.children.create! :slug => "diff_against_test" 231 n = Node.root.children.create! :slug => "diff_against_test"
232 d = n.find_or_create_draft @user1 232 d = find_or_create_draft(n, @user1)
233 d.title = "Old heading" 233 d.title = "Old heading"
234 d.save! 234 d.save!
235 n.publish_draft! 235 n.publish_draft!
236 236
237 d2 = n.find_or_create_draft @user1 237 d2 = find_or_create_draft(n, @user1)
238 d2.title = "New heading" 238 d2.title = "New heading"
239 d2.save! 239 d2.save!
240 240
@@ -246,12 +246,12 @@ class PageTest < ActiveSupport::TestCase
246 246
247 def test_diff_against_side_by_side_returns_two_annotated_strings 247 def test_diff_against_side_by_side_returns_two_annotated_strings
248 n = Node.root.children.create! :slug => "diff_against_sbs_test" 248 n = Node.root.children.create! :slug => "diff_against_sbs_test"
249 d = n.find_or_create_draft @user1 249 d = find_or_create_draft(n, @user1)
250 d.title = "Old heading" 250 d.title = "Old heading"
251 d.save! 251 d.save!
252 n.publish_draft! 252 n.publish_draft!
253 253
254 d2 = n.find_or_create_draft @user1 254 d2 = find_or_create_draft(n, @user1)
255 d2.title = "New heading" 255 d2.title = "New heading"
256 d2.save! 256 d2.save!
257 257
@@ -263,12 +263,12 @@ class PageTest < ActiveSupport::TestCase
263 263
264 test "diff_against handles an inserted paragraph split without corrupting the document" do 264 test "diff_against handles an inserted paragraph split without corrupting the document" do
265 n = Node.root.children.create! :slug => "paragraph_split_test" 265 n = Node.root.children.create! :slug => "paragraph_split_test"
266 d = n.find_or_create_draft @user1 266 d = find_or_create_draft(n, @user1)
267 d.body = "<p>Der Vortragsraum ist ab 19 Uhr geöffnet, der Zugang erfolgt über den Hinterhof.</p>" 267 d.body = "<p>Der Vortragsraum ist ab 19 Uhr geöffnet, der Zugang erfolgt über den Hinterhof.</p>"
268 d.save! 268 d.save!
269 n.publish_draft! 269 n.publish_draft!
270 270
271 d2 = n.find_or_create_draft @user1 271 d2 = find_or_create_draft(n, @user1)
272 d2.body = "<p>Der Vortragsraum ist ab 19 Uhr geöffnet,</p>\n<p>der Zugang erfolgt über den Hinterhof.</p>" 272 d2.body = "<p>Der Vortragsraum ist ab 19 Uhr geöffnet,</p>\n<p>der Zugang erfolgt über den Hinterhof.</p>"
273 d2.save! 273 d2.save!
274 274
@@ -281,13 +281,13 @@ class PageTest < ActiveSupport::TestCase
281 281
282 test "diff_against reports tag and template changes" do 282 test "diff_against reports tag and template changes" do
283 n = Node.root.children.create! :slug => "field_diff_test" 283 n = Node.root.children.create! :slug => "field_diff_test"
284 d = n.find_or_create_draft @user1 284 d = find_or_create_draft(n, @user1)
285 d.tag_list = "update" 285 d.tag_list = "update"
286 d.template_name = "standard_template" 286 d.template_name = "standard_template"
287 d.save! 287 d.save!
288 n.publish_draft! 288 n.publish_draft!
289 289
290 d2 = n.find_or_create_draft @user1 290 d2 = find_or_create_draft(n, @user1)
291 d2.tag_list = "update, pressemitteilung" 291 d2.tag_list = "update, pressemitteilung"
292 d2.template_name = "title_only" 292 d2.template_name = "title_only"
293 d2.save! 293 d2.save!
@@ -303,7 +303,7 @@ class PageTest < ActiveSupport::TestCase
303 303
304 test "diff_against reports added and removed assets by filename" do 304 test "diff_against reports added and removed assets by filename" do
305 n = Node.root.children.create! :slug => "asset_diff_test" 305 n = Node.root.children.create! :slug => "asset_diff_test"
306 d = n.find_or_create_draft @user1 306 d = find_or_create_draft(n, @user1)
307 d.save! 307 d.save!
308 n.publish_draft! 308 n.publish_draft!
309 309
@@ -311,7 +311,7 @@ class PageTest < ActiveSupport::TestCase
311 removed_asset = Asset.create!(:upload_file_name => "removed.pdf", :upload_content_type => "application/pdf", :upload_file_size => 1) 311 removed_asset = Asset.create!(:upload_file_name => "removed.pdf", :upload_content_type => "application/pdf", :upload_file_size => 1)
312 n.head.update_assets([kept_asset.id, removed_asset.id]) 312 n.head.update_assets([kept_asset.id, removed_asset.id])
313 313
314 d2 = n.find_or_create_draft @user1 314 d2 = find_or_create_draft(n, @user1)
315 added_asset = Asset.create!(:upload_file_name => "added.png", :upload_content_type => "image/png", :upload_file_size => 1) 315 added_asset = Asset.create!(:upload_file_name => "added.png", :upload_content_type => "image/png", :upload_file_size => 1)
316 d2.update_assets([kept_asset.id, added_asset.id]) 316 d2.update_assets([kept_asset.id, added_asset.id])
317 d2.save! 317 d2.save!
@@ -324,12 +324,12 @@ class PageTest < ActiveSupport::TestCase
324 324
325 test "diff_against with an explicit locale compares that locale's own translation on each side" do 325 test "diff_against with an explicit locale compares that locale's own translation on each side" do
326 n = Node.root.children.create!(:slug => "diff_locale_test") 326 n = Node.root.children.create!(:slug => "diff_locale_test")
327 d = n.find_or_create_draft(@user1) 327 d = find_or_create_draft(n, @user1)
328 Globalize.with_locale(:en) { d.update!(:title => "Old English") } 328 Globalize.with_locale(:en) { d.update!(:title => "Old English") }
329 d.save! 329 d.save!
330 n.publish_draft! 330 n.publish_draft!
331 331
332 d2 = n.find_or_create_draft(@user1) 332 d2 = find_or_create_draft(n, @user1)
333 Globalize.with_locale(:en) { d2.update!(:title => "New English") } 333 Globalize.with_locale(:en) { d2.update!(:title => "New English") }
334 d2.save! 334 d2.save!
335 335
@@ -341,11 +341,11 @@ class PageTest < ActiveSupport::TestCase
341 341
342 test "diff_against with an explicit locale ignores content in other locales entirely" do 342 test "diff_against with an explicit locale ignores content in other locales entirely" do
343 n = Node.root.children.create!(:slug => "diff_locale_isolation_test") 343 n = Node.root.children.create!(:slug => "diff_locale_isolation_test")
344 d = n.find_or_create_draft(@user1) 344 d = find_or_create_draft(n, @user1)
345 d.save! 345 d.save!
346 n.publish_draft! 346 n.publish_draft!
347 347
348 d2 = n.find_or_create_draft(@user1) 348 d2 = find_or_create_draft(n, @user1)
349 Globalize.with_locale(:de) { d2.update!(:title => "Nur Deutsch geändert") } 349 Globalize.with_locale(:de) { d2.update!(:title => "Nur Deutsch geändert") }
350 d2.save! 350 d2.save!
351 351
@@ -356,11 +356,11 @@ class PageTest < ActiveSupport::TestCase
356 356
357 test "locale_diff_summary flags a locale that only exists on one side as changed" do 357 test "locale_diff_summary flags a locale that only exists on one side as changed" do
358 n = Node.root.children.create!(:slug => "diff_locale_summary_test") 358 n = Node.root.children.create!(:slug => "diff_locale_summary_test")
359 d = n.find_or_create_draft(@user1) 359 d = find_or_create_draft(n, @user1)
360 d.save! 360 d.save!
361 n.publish_draft! 361 n.publish_draft!
362 362
363 d2 = n.find_or_create_draft(@user1) 363 d2 = find_or_create_draft(n, @user1)
364 Globalize.with_locale(:en) { d2.update!(:title => "New English translation") } 364 Globalize.with_locale(:en) { d2.update!(:title => "New English translation") }
365 d2.save! 365 d2.save!
366 366