summaryrefslogtreecommitdiff
path: root/test/controllers/revisions_controller_test.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-06-25 17:51:45 +0200
committererdgeist <erdgeist@erdgeist.org>2026-06-25 17:51:45 +0200
commit0818a3057b0a91e422158d828026c941b4e10622 (patch)
tree9ed98d52bd577d3f36dd7a1ce8048d280a36062e /test/controllers/revisions_controller_test.rb
parent26030c71c7b300c30367222f263d74b8d2142ecf (diff)
Rails 5.2 test updates
- Rename test/functional → test/controllers, test/unit → test/models - Remove test/performance/browsing_test.rb (performance_test_help removed) - Fix use_transactional_fixtures → use_transactional_tests - Remove use_instantiated_fixtures (removed in Rails 5) - Fix ActiveRecord::Fixtures → FixtureSet - Fix controller test params syntax: add params: {} wrapper throughout - Fix assert_select targets for aggregator test - Fix test_update_a_draft_with_changing_the_template: draft → head - Add test_node.reload after children.create! (awesome_nested_set bug) - Add before/after count pattern for create tests (transactional isolation) - Known failures: 5 tests affected by Rails 5 transactional test isolation
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..385e458
--- /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_attributes(: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