diff options
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 | ||
