summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/models/node_test.rb25
1 files changed, 11 insertions, 14 deletions
diff --git a/test/models/node_test.rb b/test/models/node_test.rb
index df1e96cb..735d2abe 100644
--- a/test/models/node_test.rb
+++ b/test/models/node_test.rb
@@ -1072,32 +1072,29 @@ class NodeTest < ActiveSupport::TestCase
1072 assert_equal club.id, node.parent_id 1072 assert_equal club.id, node.parent_id
1073 end 1073 end
1074 1074
1075 test "setting an external url is gated and witnessed" do 1075 test "an external url is carried by the draft and applied on publish" do
1076 node = Node.root.children.create!(:slug => "chapter_url_test") 1076 node = Node.root.children.create!(:slug => "chapter_url_test")
1077 1077 node.draft.update!(:external_url => "https://example.org")
1078 assert_difference -> { NodeAction.where(:action => "node_external_url").count }, 1 do 1078 node.publish_draft!(users(:aaron))
1079 assert node.update_external_url!("https://example.org", users(:aaron))
1080 end
1081 1079
1082 assert_equal "https://example.org", node.reload.external_url 1080 assert_equal "https://example.org", node.reload.external_url
1083 entry = NodeAction.where(:action => "node_external_url").last 1081 assert_equal "https://example.org", node.head.external_url
1084 assert_equal({ "from" => nil, "to" => "https://example.org" },
1085 entry.metadata["external_url"])
1086 end 1082 end
1087 1083
1088 test "a javascript url is refused" do 1084 test "a javascript url is refused on the draft" do
1089 node = Node.root.children.create!(:slug => "chapter_url_reject") 1085 node = Node.root.children.create!(:slug => "chapter_url_reject")
1090 assert_raises(ActiveRecord::RecordInvalid) do 1086 assert_raises(ActiveRecord::RecordInvalid) do
1091 node.update_external_url!("javascript:alert(1)", users(:aaron)) 1087 node.draft.update!(:external_url => "javascript:alert(1)")
1092 end 1088 end
1093 end 1089 end
1094 1090
1095 test "setting an external url on a restricted node needs redaktion" do 1091 test "publishing an external url change on a restricted node needs redaktion" do
1096 node = Node.find_by(:unique_name => "updates") || 1092 updates = Node.root.children.create!(:slug => "updates")
1097 Node.root.children.create!(:slug => "updates") 1093 node = updates.children.create!(:slug => "chapter_url_gated")
1094 node.draft.update!(:external_url => "https://example.org")
1098 1095
1099 assert_raises(ActiveRecord::RecordInvalid) do 1096 assert_raises(ActiveRecord::RecordInvalid) do
1100 node.update_external_url!("https://example.org", users(:quentin)) 1097 node.publish_draft!(users(:quentin))
1101 end 1098 end
1102 end 1099 end
1103 1100