manage_documents_test.rb 1.56 KB
require "#{File.dirname(__FILE__)}/../test_helper"

class ManageDocumentsTest < ActionController::IntegrationTest

  fixtures :users, :profiles, :comatose_pages, :domains, :virtual_communities

  def test_creation_of_a_new_article
    count = Article.count

    login('ze', 'test')

    get '/cms/ze'
    assert_response :success

    get '/cms/ze/new'
    assert_response :success
    assert_tag :tag => 'form', :attributes => { :action => '/cms/ze/new' }

    post '/cms/ze/new', :page => { :title => 'my new article', :body => 'this is the text of my new article' , :parent_id => Article.find_by_path('ze').id }
    assert_response :redirect

    follow_redirect!
    assert_response :success

    assert_equal count + 1, Article.count

  end

  def test_update_of_an_existing_article
    login('ze', 'test')

    get '/cms/ze'
    assert_response :success

    id = Comatose::Page.find_by_path('ze').id
    get "cms/ze/edit/#{id}"
    assert_response :success
    assert_tag :tag => 'form', :attributes => { :action => "/cms/ze/edit/#{id}" }

    post "cms/ze/edit/#{id}", :page => { :body => 'changed_body' }
    assert_response :redirect
    
  end

  def test_removing_an_article
    article = Article.create!(:title => 'to be removed', :body => 'go to hell', :parent_id => Article.find_by_path('ze').id)
    count = Article.count

    get '/cms/ze'
    assert_response :success

    post "/cms/ze/delete/#{article.id}"
    assert_response :redirect

    assert_raise ActiveRecord::RecordNotFound do
      Article.find(article.id)
    end
  end

  # FIXME: add tests for page reordering 

end