diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-06-25 17:51:45 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-06-25 17:51:45 +0200 |
| commit | 0818a3057b0a91e422158d828026c941b4e10622 (patch) | |
| tree | 9ed98d52bd577d3f36dd7a1ce8048d280a36062e /test/controllers/revisions_controller_test.rb | |
| parent | 26030c71c7b300c30367222f263d74b8d2142ecf (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.rb | 62 |
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 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class 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 | ||
| 62 | end | ||
