2005-08-09 04:20:28 +02:00
require File . expand_path ( File . dirname ( __FILE__ ) + '/../test_helper' )
2005-08-02 10:56:09 +02:00
class PageTest < Test :: Unit :: TestCase
2005-08-09 04:20:28 +02:00
fixtures :webs , :pages , :revisions , :system
def setup
@page = pages ( :first_page )
end
def test_lock
assert ! @page . locked? ( Time . local ( 2004 , 4 , 4 , 16 , 50 ) )
@page . lock ( Time . local ( 2004 , 4 , 4 , 16 , 30 ) , " DavidHeinemeierHansson " )
assert @page . locked? ( Time . local ( 2004 , 4 , 4 , 16 , 50 ) )
assert ! @page . locked? ( Time . local ( 2004 , 4 , 4 , 17 , 1 ) )
2005-08-02 10:56:09 +02:00
2005-08-09 04:20:28 +02:00
@page . unlock
assert ! @page . locked? ( Time . local ( 2004 , 4 , 4 , 16 , 50 ) )
end
def test_lock_duration
@page . lock ( Time . local ( 2004 , 4 , 4 , 16 , 30 ) , " DavidHeinemeierHansson " )
assert_equal 15 , @page . lock_duration ( Time . local ( 2004 , 4 , 4 , 16 , 45 ) )
end
2005-08-02 10:56:09 +02:00
2005-08-09 04:20:28 +02:00
def test_plain_name
assert_equal " First Page " , @page . plain_name
end
def test_revise
@page . revise ( 'HisWay would be MyWay in kinda lame' , Time . local ( 2004 , 4 , 4 , 16 , 55 ) , 'MarianneSyhler' )
assert_equal 2 , @page . revisions ( true ) . length , 'Should have two revisions'
assert_equal 'MarianneSyhler' , @page . current_revision ( true ) . author . to_s , 'Mary should be the author now'
assert_equal 'DavidHeinemeierHansson' , @page . revisions . first . author . to_s , 'David was the first author'
end
def test_revise_continous_revision
@page . revise ( 'HisWay would be MyWay in kinda lame' , Time . local ( 2004 , 4 , 4 , 16 , 55 ) , 'MarianneSyhler' )
assert_equal 2 , @page . revisions ( true ) . length
@page . current_revision ( true )
@page . revise ( 'HisWay would be MyWay in kinda update' , Time . local ( 2004 , 4 , 4 , 16 , 57 ) , 'MarianneSyhler' )
assert_equal 2 , @page . revisions ( true ) . length
assert_equal 'HisWay would be MyWay in kinda update' , @page . revisions . last . content
assert_equal Time . local ( 2004 , 4 , 4 , 16 , 57 ) , @page . revisions . last . created_at
@page . revise ( 'HisWay would be MyWay in the house' , Time . local ( 2004 , 4 , 4 , 16 , 58 ) , 'DavidHeinemeierHansson' )
assert_equal 3 , @page . revisions ( true ) . length
assert_equal 'HisWay would be MyWay in the house' , @page . revisions . last . content
@page . revise ( 'HisWay would be MyWay in my way' , Time . local ( 2004 , 4 , 4 , 17 , 30 ) , 'DavidHeinemeierHansson' )
assert_equal 4 , @page . revisions ( true ) . length
end
def test_revise_content_unchanged
last_revision_before = @page . current_revision
revisions_number_before = @page . revisions . size
assert_raises ( Instiki :: ValidationError ) {
@page . revise ( @page . current_revision . content , Time . now , 'AlexeyVerkhovsky' )
}
assert_equal last_revision_before , @page . current_revision ( true )
assert_equal revisions_number_before , @page . revisions . size
end
def test_rollback
@page . revise ( " spot two " , Time . now , " David " )
@page . revise ( " spot three " , Time . now + 2000 , " David " )
assert_equal 3 , @page . revisions ( true ) . length , " Should have three revisions "
@page . current_revision ( true )
@page . rollback ( 1 , Time . now )
assert_equal " HisWay would be MyWay in kinda ThatWay in HisWay though MyWay \\ \\ OverThere -- see SmartEngine in that SmartEngineGUI " , @page . current_revision ( true ) . content
end
2005-08-02 10:56:09 +02:00
end