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