diff --git a/utilities/acceptance-tests/script/output_manager.rb b/utilities/acceptance-tests/script/output_manager.rb index 0280596d..7acb1438 100644 --- a/utilities/acceptance-tests/script/output_manager.rb +++ b/utilities/acceptance-tests/script/output_manager.rb @@ -26,6 +26,32 @@ Parameters: -------------------------------------------------------------------------------- =end +require 'date' +require 'fileutils' +require File.expand_path('output_suite_parser', File.dirname(File.expand_path(__FILE__))) +require File.expand_path('output_summary_formatter', File.dirname(File.expand_path(__FILE__))) + +class TestInfo + attr :test_name, true + attr :suite_name, true + attr :output_link, true + attr :status, true +end + +class SuiteInfo + attr :name, true + attr :output_link, true + attr :status, true +end + +class Status + GOOD = 0 + BAD = 1 + FAIR = 2 + def self.html_class(status) + return %w{good bad fair}[status] + end +end class OutputManager # ------------------------------------------------------------------------------------ @@ -56,6 +82,221 @@ class OutputManager end end + # The CSS file for the output summary exists in the script directory. + # Copy it to the output directory. + # + def copy_css_file() + source = File.expand_path('output_summary.css', File.dirname(File.expand_path(__FILE__))) + dest = File.expand_path('summary.css', @output_directory) + FileUtils::copy_file(source, dest) + end + + # Write the beginning of the summary file. + # This includes the HTML header, and the banner. + # + # f -- a file, already open for output. + # + def write_summary_header(f) + if @osp.overall_status == Status::BAD + overall_status = "FAILURE" + else + overall_status = "SUCCESS" + end + + f.print < + + Summary of Acceptance Tests #{@osp.start_time} + + + + +
+ Acceptance test results: 3:45 p.m. March 10, 2010 +
#{overall_status}
+
+ +END_HEADER + end + + # Write the first section of the summary file. This section contains + # nested tables with fixed formats, containing overall stats. + # + # f -- a file, already open for output. + # + def write_summary_stats_section(f) + how_many_tests = @osp.tests.length + how_many_pass = 0 + how_many_fail = 0 + how_many_ignore = 0 + @osp.tests.each do |t| + how_many_pass += 1 if t.status == Status::GOOD + how_many_ignore += 1 if t.status == Status::FAIR + how_many_fail += 1 if t.status == Status::BAD + end + + f.print <Summary + + + + + + +
+ + + + +
Start time:#{@osp.start_time}
End time#{@osp.end_time}
Elapsed time#{@osp.elapsed_time}
+
+ + + + + + +
Suites#{@osp.suites.length}
Total tests#{@osp.tests.length}
Passing tests#{how_many_pass}
Failing tests#{how_many_fail}
Ignored tests#{how_many_ignore}
+
+ +END_STATS + end + + # Write a table of failed tests to the summary file, with links + # to the detailed output for each test. + # + # f -- a file, already open for output. + # + def write_summary_failure_section(f) + fails = [] + @osp.tests.each do |t| + fails << t if t.status == Status::BAD + end + + f.print "
Failing tests
\n\n \n" + f.print " \n" + + if fails.empty? + f.print " \n" + f.print " \n" + f.print " \n" + else + fails.each do |t| + f.print " \n" + f.print " \n" + f.print " \n" + f.print " \n" + end + end + + f.print "
Suite nameTest name
No tests failed.
#{t.suite_name}#{t.test_name}
\n\n" + end + + # Write a table of ignored tests to the summary file, with links + # to the detailed output for each test. + # + # f -- a file, already open for output. + # + def write_summary_ignore_section(f) + ignores = [] + @osp.tests.each do |t| + ignores << t if t.status == Status::FAIR + end + + f.print "
Ignored tests
\n\n \n" + f.print " \n" + + if ignores.empty? + f.print " \n" + f.print " \n" + f.print " \n" + else + ignores.each do |t| + f.print " \n" + f.print " \n" + f.print " \n" + f.print " \n" + end + end + + f.print "
Suite nameTest name
No tests ignored.
#{t.suite_name}#{t.test_name}
\n\n" + end + + # Write a table of any error messages or warnings found in the log file. + # + # f -- a file, already open for output. + # + def write_error_messages_section(f) + f.print "
Errors and warnings
\n" + f.print " " + + if @osp.errors.empty? && @osp.warnings.empty? + f.print " " + else + @osp.errors.each() do |e| + f.print " " + end + @osp.warnings.each() do |w| + f.print " " + end + end + f.print "
No errors or warnings
ERROR#{e}
WARN#{w}
\n\n" + end + + # Write a table of the suites to the summary file, with links + # to the detailed output for each suite. + # + # f -- a file, already open for output. + # + def write_summary_suites_section(f) + f.print "
Suites
\n" + f.print " \n" + + @osp.suites.each() do |s| + f.print " \n" + f.print " \n" + f.print " \n" + end + f.print "
#{s.name}
\n\n" + end + + # Write a table of all tests to the summary file, with links + # to the detailed output for each test. + # + # f -- a file, already open for output. + # + def write_summary_all_tests_section(f) + f.print "
All tests
\n\n \n" + f.print " \n" + + if @osp.tests.empty? + f.print " \n" + f.print " \n" + f.print " \n" + else + @osp.tests.each do |t| + f.print " \n" + f.print " \n" + f.print " \n" + f.print " \n" + end + end + + f.print "
Suite nameTest name
No tests.
#{t.suite_name}#{t.test_name}
\n\n" + end + + # Copy the log to the summary file, and close the HTML tags. + # + # f -- a file, already open for output. + # + def write_summary_footer(f) + f.print "
Log
\n
\n"
+    File.open(@log_file) do |log|
+      FileUtils::copy_stream(log, f)
+    end
+    f.print "  
\n\n\n\n" + end + # ------------------------------------------------------------------------------------ public @@ -68,7 +309,10 @@ class OutputManager sanity_checks_on_parameters() @log_file = File.expand_path("log_file.txt", @output_directory) + FileUtils::remove_file(@log_file) if File.exist?(@log_file) + @output_summary_file = File.expand_path("summary.html", @output_directory) + FileUtils::remove_file(@output_summary_file) if File.exist?(@output_summary_file) end # Write a message to the log file @@ -83,6 +327,27 @@ class OutputManager File.expand_path("#{suite_name}_output.html", @output_directory) end + def ignore_test?(suite_name, test_name) + false + end + def summarize() + @osp = OutputSuiteParser.new(self, @log_file) + @osp.parse() + + copy_css_file() + File.open(@output_summary_file, File::CREAT | File::WRONLY) do |f| + osf = OutputSummaryFormatter.new(@osp, @log_file) + osf.format(f) + + write_summary_header(f) + write_summary_stats_section(f) + write_error_messages_section(f) + write_summary_failure_section(f) + write_summary_ignore_section(f) + write_summary_suites_section(f) + write_summary_all_tests_section(f) + write_summary_footer(f) + end end end \ No newline at end of file diff --git a/utilities/acceptance-tests/script/output_suite_parser.rb b/utilities/acceptance-tests/script/output_suite_parser.rb new file mode 100644 index 00000000..024ab638 --- /dev/null +++ b/utilities/acceptance-tests/script/output_suite_parser.rb @@ -0,0 +1,184 @@ +=begin +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- + +Parameters: + +-------------------------------------------------------------------------------- +=end +require 'date' + +class OutputSuiteParser + attr :errors + attr :warnings + + attr :start_time + attr :end_time + attr :elapsed_time + + attr :suites + attr :tests + + attr :overall_status + + # ------------------------------------------------------------------------------------ + private + # ------------------------------------------------------------------------------------ + # + # Scan the log file for start time, end time, and the names of the suites that + # were run. Figure elapsed time also. + # + def parse_log_file() + @start_time = nil + @end_time = nil + @elapsed_time = "unknown" + + @suite_names = [] + + File.open(@log_file) do |f| + f.each_line do |line| + md = %r{Start time: (.*)$}.match line + if md + @start_time = md[1] + end + + md = %r{End time: (.*)$}.match line + if md + @end_time = md[1] + end + + md = %r{Running suite (.*)$}.match line + if md + @suite_names << md[1] + end + + md = %r{^ERROR\s*(.*)}.match line + if md + @errors << md[1] + end + + md = %r{^WARN\s*(.*)}.match line + if md + @warnings << md[1] + end + end + end + + if @start_time && @end_time + @elapsed_time = format_elapsed_time(@start_time, @end_time) + end + end + + # Scan the output of a suite run. + # + def parse_suite_output(suite_name) + file_name = @output_manager.output_filename(suite_name) + + s = SuiteInfo.new + s.name = suite_name + s.output_link = File.basename(file_name) + s.status = Status::GOOD + @suites << s + + tests = [] + begin + File.open(file_name) do |f| + f.each_line do |line| + md = %r{([^<]*)}.match line + if md + t = TestInfo.new + t.test_name = md[3] + t.suite_name = s.name + t.output_link = s.output_link + md[2] + if md[1] == 'status_passed' + t.status = Status::GOOD + elsif @output_manager.ignore_test?(t.suite_name, t.test_name) + t.status = Status::FAIR + else + t.status = Status::BAD + end + tests << t + end + end + end + rescue Exception + log_error("Failed to parse output for suite '#{s.name}': #{$!}") + s.status = Status::BAD + end + + s.status = get_worst_status(s.status, tests) + @tests = @tests.concat(tests) + end + + # Look at the info from all of the suites and prepare summary info. + # + def collate_and_summarize() + status = Status::GOOD + status = Status::FAIR if !@warnings.empty? + status = Status::BAD if !@errors.empty? + @overall_status = get_worst_status(status, @suites) + end + + # Find the worst status in an array of tests or suites + # + def get_worst_status(starting_status, statused) + worst = starting_status + statused.each do |s| + worst = s.status if s.status > worst + end + return worst + end + + # Take two parsable time stamps and express the elapsed time as a string. + # Examples: 4h 37m 6.7s + # 15m 4s + # 55.6s + # + def format_elapsed_time(start_time_string, end_time_string) + start = Time.parse(start_time_string) + ender = Time.parse(end_time_string) + elapsed = ender - start + s = elapsed % 60 + m = ((elapsed - s) / 60) % 60 + h = (elapsed - s - (60 * m))/ 3600 + elapsed_time = "" + elapsed_time << "#{h.to_i}h " if h > 0 + elapsed_time << "#{m.to_i}m " if h > 0 || m > 0 + elapsed_time << "#{s}s" + end + + def log_error(message) + @output_manager.log("ERROR", message) + # By the time we get here, we've already scanned the log file for errors. + @errors << message + end + + # ------------------------------------------------------------------------------------ + public + + # ------------------------------------------------------------------------------------ + # + # Set up and get ready to process. + # + def initialize(output_manager, log_file) + @output_manager = output_manager + @log_file = log_file + + @errors = [] + @warnings = [] + @suites = [] + @tests = [] + end + + # Parse the output from each suite, and the log file, and munge it all together + # for easy access. + # + def parse() + parse_log_file() + @suite_names.each do |suite_name| + parse_suite_output(suite_name) + end + collate_and_summarize() + end +end diff --git a/utilities/acceptance-tests/script/output_summary.css b/utilities/acceptance-tests/script/output_summary.css new file mode 100644 index 00000000..f0a00444 --- /dev/null +++ b/utilities/acceptance-tests/script/output_summary.css @@ -0,0 +1,65 @@ +/* +Formats for the output summary from the acceptance tests. +*/ +body { + background: rgb(95%, 95%, 95%); + font-family: sans-serif; +} + +.heading { + border: groove; + background: white; + padding: 10px 20px 8px 20px; + margin-top: 50px; + font-size: large; +} + +table { + border: thin double gray; + background: white; +} + +td,th { + padding: 4px 12px 2px 12px; +} + +th { + border-bottom: 1px solid black; +} + +table.summary { + border: none; + background: inherit; +} + +table.summary td { + padding-right: 30; + border: none; + vertical-align: top; +} + +.section { + background: rgb(70%, 85%, 85%); + font-size: larger; + margin: 50px 0px 15px 0px; + padding: 4px 12px 2px 12px; +} + +.good { + background: rgb(60%, 100%, 60%); +} + +.bad { + background: rgb(100%, 60%, 60%); +} + +.fair { + background: rgb(100%, 100%, 60%); +} + +.one-word { + width: 20%; + text-align: center; + margin: 15px 0px 0px 0px; + border: 1px solid black; +} \ No newline at end of file diff --git a/utilities/acceptance-tests/script/output_summary_formatter.rb b/utilities/acceptance-tests/script/output_summary_formatter.rb new file mode 100644 index 00000000..d7363800 --- /dev/null +++ b/utilities/acceptance-tests/script/output_summary_formatter.rb @@ -0,0 +1,53 @@ +=begin +-------------------------------------------------------------------------------- + +Stop the Vitro application, delete all MySQL tables from the Vitro database, and +start the application again. + +-------------------------------------------------------------------------------- + +Parameters: + tomcat_stop_command + A "shell" command that will stop the Tomcat server. + tomcat_stop_delay + Number of seconds to wait after the tomcat_stop_command returns before + proceeding. + tomcat_start_command + A "shell" command that will start the Tomcat server. + tomcat_start_delay + Number of seconds to wait after the tomcat_start_command returns before + proceeding. + mysql_username + A user account that has authority to drop the Vitro database in MySQL. + mysql_password + The password for mysql_username. + database_name + The name of the Vitro database in MySQL. + +-------------------------------------------------------------------------------- +=end + +class OutputSummaryFormatter + # ------------------------------------------------------------------------------------ + private + # ------------------------------------------------------------------------------------ + # + # Confirm that the output directory parameter is reasonable. + # + def sanity_checks_on_parameters() + end + + # ------------------------------------------------------------------------------------ + public + + # ------------------------------------------------------------------------------------ + # Set up and get ready to process. + # + def initialize(output_suite_parser, log_file) + @osp = output_suite_parser + @log_file = log_file + end + + def format(f) + end +end diff --git a/utilities/acceptance-tests/script/vivo_output.html b/utilities/acceptance-tests/script/vivo_output.html deleted file mode 100644 index fbd4af5a..00000000 --- a/utilities/acceptance-tests/script/vivo_output.html +++ /dev/null @@ -1,1287 +0,0 @@ - -Test suite results - -

Test suite results

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
result:failed
totalTime:34
numTestTotal:7
numTestPasses:0
numTestFailures:7
numCommandPasses:15
numCommandFailures:8
numCommandErrors:7
Selenium Version:2.0
Selenium Revision:a1
- - - - - - - - - -
Test Suite
Create New User
First Time Login
Try New Password
Edit User Info
Confirm Edited Info
Delete New User
Bookmark Without Logging In
-
 
- - - - - - - - - - - - - - - - - - - - -
CreateNewUser.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create New User
open.XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
assertTitleVIVO
commentLogin as defaultAdmin
clickAndWaitlink=Log in
assertTitleVIVO Site AdministrationActual value '' did not match 'VIVO Site Administration'
typeusernamedefaultAdmin
typepasswordPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
commentCreate a new user
clickAndWaitlink=User accounts
assertTitleUser Accounts
clickAndWait//input[@value='Add new user account']
assertTitleUser Account Editing Form
typeUsernameUser Mgmt
typeFirstNameUser
typeLastNameMgmt
typeMd5passwordUserMgmt
commentEnter a mis-matched confirmation password
typepasswordConfirmationsomethingElse
clickprimaryAction
assertAlertThe passwords do not match.
commentNow enter a correct password
typepasswordConfirmationUserMgmt
clickAndWaitprimaryAction
assertTitleUser Account Control Panel
commentConfirm values for new user
verifyText//tr[1]/td[2]User Mgmt
verifyText//tr[2]/td[2]User
verifyText//tr[3]/td[2]Mgmt
verifyText//tr[4]/td[2]0
verifyTextPresentunprivileged
commentLog out
clickAndWaitlink=Log out
assertTitleVIVO
-
 
FirstTimeLogin.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
First Time Login
open.XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
assertTitleVIVO
commentLogin for the first time
clickAndWaitlink=Log in
assertTitleVIVO Site Administration
commentTry the wrong password
typeusernameElement username not found
typepasswordincorrect
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresent(1st login; initial password entered incorrectly)
verifyTextPresentPlease try entering provided password again
commentNow the correct password
typepasswordUserMgmt
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresent(1st login; changing to new private password)
verifyTextPresentPlease now choose a private password
commentTry changing to an invalid password
typepasswordjunk
clickloginSubmitMode
assertAlertPlease enter a password between 6 and 12 characters long
commentNow try a valid one
typepasswordnewPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresent(changing to new password)
verifyTextPresentPlease re-enter new private password
commentRe-enter it incorrectly
typepasswordgarbage
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresent(password incorrect)
verifyTextPresentIncorrect password: try again
commentNow re-enter it correctly
typepasswordnewPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
commentAre we logged in?
verifyTextPresentLogged in as
verifyTextPresentUser Mgmt
commentLog out
clickAndWaitloginSubmitMode
assertTitleVIVO
-
 
TryNewPassword.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Try New Password
open.
assertTitleVIVO
commentLog in with new password
clickAndWaitlink=Log in
typeusernameUser Mgmt
typepasswordnewPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site AdministrationActual value 'Apache Tomcat/6.0.24 - Error report' did not match 'VIVO Site Administration'
commentConfirm that it worked
verifyTextPresentLogged in as
verifyTextPresentUser Mgmt
commentLog out
clickAndWaitloginSubmitMode
assertTitleVIVO
-
 
EditUserInfo.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Edit User Info
open.
assertTitleVIVO
commentLogin as default admin
clickAndWaitlink=Log in
assertTitleVIVO Site Administration
typeusernamedefaultAdmin
typepasswordPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
commentGo to user management for our new user account
clickAndWaitlink=User accountsElement link=User accounts not found
assertTitleUser Accounts
clickAndWaitlink=User Mgmt
assertTitleUser Account Control Panel
commentOpen the editing form
clickAndWait//input[@value='Edit User Account']
assertTitleUser Account Editing Form
commentChange the User Name and the Last Name
typeUsernameUser Management
typeLastNameManagement
clickAndWaitprimaryAction
assertTitleUser Account Control Panel
commentOpen the "Reset Password" form
clickAndWait//input[@value='Reset Password']
assertTitleUser Account Editing Form
commentTry two passwords that don't match
typeMd5passwordotherPassword
typepasswordConfirmationsomethingElse
clickprimaryAction
assertAlertThe passwords do not match.
commentTry passwords that match, but are too long
typepasswordConfirmationotherPassword
clickprimaryAction
assertAlertPlease enter a password between 6 and 12 characters long.
commentTry a good password, with a good match.
typeMd5passwordresetPasswd
typepasswordConfirmationresetPasswd
clickAndWaitprimaryAction
assertTitleUser Account Control Panel
commentLog out
clickAndWaitlink=Log out
assertTitleVIVO
-
 
ConfirmEditedInfo.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Confirm Edited Info
open.
assertTitleVIVO
commentTry to log in with original username
clickAndWaitlink=Log in
assertTitleVIVO Site Administration
typeusernameUser Mgmt
typepasswordresetPasswd
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresent(unknown username)
verifyTextPresentUnknown username
commentNow log in with new username (and new password)
typeusernameUser Management
typepasswordresetPasswd
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
verifyTextPresentLogged in asfalse
verifyTextPresentUser Managementfalse
commentLog out
clickAndWaitloginSubmitModeTimed out after 30000ms
assertTitleVIVOActual value 'VIVO Site Administration' did not match 'VIVO'
-
 
DeleteNewUser.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Delete New User
open.XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
assertTitleVIVO
commentLog in as default admin
clickAndWaitlink=Log in
assertTitleVIVO Site AdministrationActual value '' did not match 'VIVO Site Administration'
typeusernamedefaultAdmin
typepasswordPassword
clickAndWaitloginSubmitMode
assertTitleVIVO Site Administration
commentGo to User Accounts
clickAndWaitlink=User accounts
assertTitleUser Accounts
verifyElementPresentlink=User Management
commentView the new user account, and edit it.
clickAndWaitlink=User Management
assertTitleUser Account Control Panel
clickAndWait//input[@value='Edit User Account']
assertTitleUser Account Editing Form
commentDelete the account
click_delete
assertConfirmationAre you SURE you want to delete this user? If in doubt, CANCEL.
waitForPageToLoad5000
assertTitleUser Accounts
verifyElementNotPresentlink=User Management
commentLog out
clickAndWaitlink=Log out
assertTitleVIVO
-
 
BookmarkWithoutLoggingIn.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bookmark Without Logging In
commentTry to view Data Property Hierarchy page without logging in
open./showDataPropertyHierarchy?home=1
commentIt takes us to login page instead
assertTitleVIVO Site Administration
typeusernamedefaultAdmin
typepasswordPassword
clickAndWaitloginSubmitMode
commentAfter logging in, we go to the Data Property Hierarchy page, as intended.
verifyTitleData Property HierarchyActual value 'Apache Tomcat/6.0.24 - Error report' did not match 'Data Property Hierarchy'
verifyTextPresentData Property Hierarchyfalse
commentLog out
clicklink=Log outElement link=Log out not found
assertTitleVIVO
-
 
-info: Starting test /selenium-server/tests/CreateNewUser.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826435545
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826435545
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826435679
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826435679
-error: XHR failed with message Internal Server Error
-warn: currentTest.recordFailure: XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Login as defaultAdmin |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-error: Actual value '' did not match 'VIVO Site Administration'
-warn: currentTest.recordFailure: Actual value '' did not match 'VIVO Site Administration'
-info: Starting test /selenium-server/tests/FirstTimeLogin.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826436087
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826436087
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826436219
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826436219
-error: XHR failed with message Internal Server Error
-warn: currentTest.recordFailure: XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Login for the first time |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |comment | Try the wrong password |  |
-info: Executing: |type | username | User Mgmt |
-error: Element username not found
-warn: currentTest.recordFailure: Element username not found
-info: Starting test /selenium-server/tests/TryNewPassword.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826436567
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826436567
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826436587
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826436587
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Log in with new password |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |type | username | User Mgmt |
-info: Executing: |type | password | newPassword |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-error: Actual value 'Apache Tomcat/6.0.24 - Error report' did not match 'VIVO Site Administration'
-warn: currentTest.recordFailure: Actual value 'Apache Tomcat/6.0.24 - Error report' did not match 'VIVO Site Administration'
-info: Starting test /selenium-server/tests/EditUserInfo.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826437055
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826437056
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826437077
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826437077
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Login as default admin |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |type | username | defaultAdmin |
-info: Executing: |type | password | Password |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |comment | Go to user management for our new user account |  |
-info: Executing: |clickAndWait | link=User accounts |  |
-error: Element link=User accounts not found
-warn: currentTest.recordFailure: Element link=User accounts not found
-info: Starting test /selenium-server/tests/ConfirmEditedInfo.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826437789
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826437789
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826437810
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826437810
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Try to log in with original username |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |type | username | User Mgmt |
-info: Executing: |type | password | resetPasswd |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |verifyTextPresent | (unknown username) |  |
-info: Executing: |verifyTextPresent | Unknown username |  |
-info: Executing: |comment | Now log in with new username (and new password) |  |
-info: Executing: |type | username | User Management |
-info: Executing: |type | password | resetPasswd |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |verifyTextPresent | Logged in as |  |
-warn: currentTest.recordFailure: false
-info: Executing: |verifyTextPresent | User Management |  |
-warn: currentTest.recordFailure: false
-info: Executing: |comment | Log out |  |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-warn: currentTest.recordFailure: Timed out after 30000ms
-info: Executing: |assertTitle | VIVO |  |
-error: Actual value 'VIVO Site Administration' did not match 'VIVO'
-warn: currentTest.recordFailure: Actual value 'VIVO Site Administration' did not match 'VIVO'
-info: Starting test /selenium-server/tests/DeleteNewUser.html
-info: Executing: |open | . |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826468862
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826468862
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826468998
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826468998
-error: XHR failed with message Internal Server Error
-warn: currentTest.recordFailure: XHR ERROR: URL = http://localhost:8080/vivo/. Response_Code = 500 Error_Message = Internal Server Error
-info: Executing: |assertTitle | VIVO |  |
-info: Executing: |comment | Log in as default admin |  |
-info: Executing: |clickAndWait | link=Log in |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-error: Actual value '' did not match 'VIVO Site Administration'
-warn: currentTest.recordFailure: Actual value '' did not match 'VIVO Site Administration'
-info: Starting test /selenium-server/tests/BookmarkWithoutLoggingIn.html
-info: Executing: |comment | Try to view Data Property Hierarchy page without logging in |  |
-info: Executing: |open | ./showDataPropertyHierarchy?home=1 |  |
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826469407
-info: onXhrStateChange(): xhr.readyState = 1 method = HEAD time = 1267826469408
-info: onXhrStateChange(): xhr.readyState = 2 method = HEAD time = 1267826469478
-info: onXhrStateChange(): xhr.readyState = 3 method = HEAD time = 1267826469478
-info: onXhrStateChange(): xhr.readyState = 4 method = HEAD time = 1267826469549
-info: Executing: |comment | It takes us to login page instead |  |
-info: Executing: |assertTitle | VIVO Site Administration |  |
-info: Executing: |type | username | defaultAdmin |
-info: Executing: |type | password | Password |
-info: Executing: |clickAndWait | loginSubmitMode |  |
-info: Executing: |comment | After logging in, we go to the Data Property Hierarchy page, as intended. |  |
-info: Executing: |verifyTitle | Data Property Hierarchy |  |
-warn: currentTest.recordFailure: Actual value 'Apache Tomcat/6.0.24 - Error report' did not match 'Data Property Hierarchy'
-info: Executing: |verifyTextPresent | Data Property Hierarchy |  |
-warn: currentTest.recordFailure: false
-info: Executing: |comment | Log out |  |
-info: Executing: |click | link=Log out |  |
-error: Element link=Log out not found
-warn: currentTest.recordFailure: Element link=Log out not found
-
\ No newline at end of file