Watir test for page editing and revisions behavior

This commit is contained in:
Alexey Verkhovsky 2005-05-18 01:53:59 +00:00
parent 79cea66e36
commit 95097ace5c

View file

@ -54,21 +54,12 @@ class E2EInstikiTest < Test::Unit::TestCase
end
def test_00020_add_a_page
ie.link(:text, 'Edit Page').click
assert_equal url(:edit, 'HomePage'), ie.url
# Add reference to a non-existant wiki page
ie.text_field(:name, 'content').set('[[Another Wiki Page]]')
ie.button(:value, 'Submit').click
assert_equal url(:show, 'HomePage'), ie.url
enter_markup('HomePage', '[[Another Wiki Page]]')
assert_equal '?', ie.link(:url, url(:show, 'Another+Wiki+Page')).text
# Edit the first revision of a page
ie.link(:url, url(:show, 'Another+Wiki+Page')).click
# this c lick must be redirected to 'new' page
assert_equal url(:new, 'Another+Wiki+Page'), ie.url
ie.text_field(:name, 'content').set('First revision of Another Wiki Page, linked from HomePage')
ie.button(:value, 'Submit').click
enter_markup('Another+Wiki+Page', 'First revision of Another Wiki Page, linked from HomePage')
# Check contents of the new page
assert_equal url(:show, 'Another+Wiki+Page'), ie.url
@ -81,9 +72,28 @@ class E2EInstikiTest < Test::Unit::TestCase
links_to_homepage.each { |link| assert_equal url(:show, 'HomePage'), link.href }
# Check also the "created on ... by ..." footnote
date_pattern = '(January|February|March|April|May|June|July|August|September|October|November|December) \d\d?, \d\d\d\d \d\d:\d\d'
assert_match Regexp.new('Created on ' + date_pattern + ' by Anonymous Coward\?'), ie.text
end
def test_00030_edit_page
enter_markup('TestEditPage', 'Test Edit Page, revision 1')
assert_match /Test Edit Page, revision 1/, ie.text
# subsequent revision by the anonymous author
enter_markup('TestEditPage', 'Test Edit Page, revision 2')
assert_match /Test Edit Page, revision 2/, ie.text
assert_match Regexp.new('Created on ' + date_pattern + ' by Anonymous Coward\?'), ie.text
# revision by a named author
enter_markup('TestEditPage', 'Test Edit Page, revision 3', 'Author')
assert_match /Test Edit Page, revision 3/, ie.text
assert_match Regexp.new('Revised on ' + date_pattern + ' by Author\?'), ie.text
link_to_previous_revision = ie.link(:name, 'to_previous_revision')
assert_equal url(:revision, 'TestEditPage') + '?rev=0', link_to_previous_revision.href
assert_equal 'Back in time', link_to_previous_revision.text
assert_match /Edit \| Back in time \(1 revisions\) \| See changes/, ie.text
end
private
@ -103,7 +113,7 @@ class E2EInstikiTest < Test::Unit::TestCase
def check_bottom_menu
assert_equal url(:edit, 'HomePage'), ie.link(:text, 'Edit Page').href
assert_equal HOME + '/wiki/edit_web', ie.link(:text, 'Edit Web').href
assert_equal HOME + '/wiki/print/HomePage', ie.link(:text, 'Print').href
assert_equal url(:print, 'HomePage'), ie.link(:text, 'Print').href
end
def check_footnote
@ -112,6 +122,27 @@ class E2EInstikiTest < Test::Unit::TestCase
assert_match /Powered by Ruby on Rails/, ie.text
assert_equal 'http://rubyonrails.com/', ie.link(:text, 'Ruby on Rails').href
end
def date_pattern
'(January|February|March|April|May|June|July|August|September|October|November|December) ' +
'\d\d?, \d\d\d\d \d\d:\d\d'
end
def enter_markup(page, content, author = nil)
ie.goto url(:show, page)
if ie.url == url(:show, page)
ie.link(:name, 'edit').click
assert_equal url(:edit, page), ie.url
else
assert_equal url(:new, page), ie.url
end
ie.text_field(:name, 'content').set(content)
ie.text_field(:name, 'author').set(author || '')
ie.button(:value, 'Submit').click
assert_equal url(:show, page), ie.url
end
def setup_web
assert_equal 'Wiki', ie.textField(:name, 'web_name').value
@ -131,9 +162,9 @@ class E2EInstikiTest < Test::Unit::TestCase
assert_equal url(:show, 'HomePage'), ie.url
end
def url(operation, page_name)
def url(operation, page_name = nil)
case operation
when :edit, :new, :show
when :edit, :new, :show, :print, :revision
"#{HOME}/wiki/#{operation}/#{page_name}"
else
raise "Unsupported operation: '#{operation}"