summaryrefslogtreecommitdiff
path: root/test/controllers/revisions_controller_test.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-06-27 22:52:50 +0200
committererdgeist <erdgeist@erdgeist.org>2026-06-27 22:52:50 +0200
commit9a19a0494ef51cdac9a78e24d517ca48ba44c453 (patch)
tree8eaae12d8047a40e29d3ea7ff3116b5c869e04bd /test/controllers/revisions_controller_test.rb
parent85a01e35274b8d4d4165a7b26bd7986e211246bb (diff)
parent1853082fcd8c067390c246f9daa01a9b47387497 (diff)
Migration from Rails 2.3.5 to Rails 8.1 successful.
Merging dev branch.
Diffstat (limited to 'test/controllers/revisions_controller_test.rb')
-rw-r--r--test/controllers/revisions_controller_test.rb62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/controllers/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb
new file mode 100644
index 0000000..b4dcd8f
--- /dev/null
+++ b/test/controllers/revisions_controller_test.rb
@@ -0,0 +1,62 @@
1require 'test_helper'
2
3class RevisionsControllerTest < ActionController::TestCase
4
5 def setup
6 Node.root.descendants.destroy_all
7 @user = User.find_by_login("aaron")
8 @node = Node.root.children.create!( :slug => "version_me" )
9
10 draft = @node.draft
11 draft.body = "first"
12 @node.publish_draft!
13 @node.find_or_create_draft @user
14 draft = @node.draft
15 draft.update(:body => "second")
16 @node.publish_draft!
17 end
18
19 test "setup" do
20 assert_equal 2, Node.count
21 assert_equal 2, @node.pages.count
22 assert_equal ["first", "second"], @node.pages.map {|p| p.body}
23 end
24
25 test "get list of revisions for a given node" do
26 login_as :quentin
27 get :index, params: { :node_id => @node.id }
28 assert_response :success
29 assert_select ".revision", 2
30 end
31
32 test "showing one revision" do
33 login_as :quentin
34 get :show, params: { :node_id => @node.id, :id => @node.pages.last.id }
35 assert_response :success
36 assert_select "strong", "Body"
37 assert_select "td", {:count => 1, :text => "second"}
38 end
39
40 test "diffing two revisions" do
41 login_as :quentin
42 post(
43 :diff, params: {
44 :node_id => @node.id,
45 :start_revision => @node.pages.first.revision,
46 :end_revision => @node.pages.last.revision
47 }
48 )
49 assert_response :success
50 end
51
52 test "restoring a revision" do
53 assert_equal "second", @node.head.body
54
55 login_as :aaron
56 put( :restore, params: { :node_id => @node.id, :id => @node.pages.first.id } )
57
58 @node.reload
59 assert_equal @node.head, @node.pages.first
60 assert_equal "first", @node.head.reload.body
61 end
62end