Maven migration (first draft)

This commit is contained in:
Graham Triggs 2015-11-19 23:47:41 +00:00
parent da79ac3e1d
commit fee48b0b50
1711 changed files with 662 additions and 0 deletions

View file

@ -0,0 +1,66 @@
require 'find'
class DirectoryWalker
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def start_walking()
Find.find(@directory_root) do |path|
if FileTest.directory?(path)
if File.basename(path).start_with?(".")
Find.prune # Don't look any further into this directory.
elsif @known_exceptions.skip?(path)
Find.prune
else
next
end
elsif @known_exceptions.skip?(path)
Find.prune
else
scan_file(path)
end
end
end
def scan_file(path)
@report.register_file(path)
lines = File.readlines(path)
lines.each_index do |index|
line_number = index + 1
line = lines[index].strip
scan_line(path, line_number, line) unless @known_exceptions.skip?(path, line_number)
end
end
def scan_line(path, line_number, line)
@obsolete_uris.uris.each do |uri|
# next if @known_exceptions.skip?(path, line_number, uri)
@report.add_event(Event.new(path, line_number, line, uri)) if line =~ Regexp.new("\\b#{Regexp.quote(uri)}\\b")
end
if @complete
@obsolete_uris.localnames.each do |localname|
term = ":#{localname}"
# next if @known_exceptions.skip?(path, line_number, term)
@report.add_event(Event.new(path, line_number, line, term)) if line =~ Regexp.new("#{Regexp.quote(term)}\\b")
end
end
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(directory_root, obsolete_uris, known_exceptions, report, complete)
@directory_root = File.expand_path(directory_root)
@obsolete_uris = obsolete_uris
@known_exceptions = known_exceptions
@report = report
@complete = complete
end
def walk()
start_walking()
end
end

View file

@ -0,0 +1,7 @@
ruby obsoleteUriChecker.rb /Users/jeb228/git/VIVO \
../../../productMods/WEB-INF/ontologies/update/diff.tab.txt \
vivo_known_exceptions.txt complete > scan_VIVO_maint_branch
ruby obsoleteUriChecker.rb /Users/jeb228/git/Vitro \
../../../productMods/WEB-INF/ontologies/update/diff.tab.txt \
vivo_known_exceptions.txt complete > scan_Vitro_maint_branch

View file

@ -0,0 +1,2 @@
ruby obsoleteUriChecker.rb /Users/jeb228/Documents/Releases/VIVO\ 1.6/vivo-rel-1.6-rc1 ../../../productMods/WEB-INF/ontologies/update/diff.tab.txt vivo_known_exceptions.txt complete

View file

@ -0,0 +1,37 @@
class Event
attr_reader :path
attr_reader :line_number
attr_reader :line
attr_reader :string
attr_reader :is_localname
require 'pathname'
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def relativize(root, path)
Pathname.new(path).relative_path_from(Pathname.new(root)).to_s
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(path, line_number, line, string)
@path = path
@line_number = line_number
@line = line
@string = string
@is_localname = string[0] == ?:
end
def to_s(directory_root = nil)
if directory_root
"#{relativize(directory_root, @path)} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
else
"#{@path} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
end
end
end

View file

@ -0,0 +1,101 @@
require 'pathname'
class KnownExceptionsError < StandardError; end
class GlobSkipper
def initialize(root_path, glob)
@root_path = root_path
@glob = glob
end
def relativize(path)
Pathname.new(path).relative_path_from(Pathname.new(@root_path)).to_s
end
def skip?(path, line, uri)
return File.fnmatch(@glob, relativize(path))
end
end
class ExtensionSkipper
def initialize(extension)
@extension = extension
end
def skip?(path, line, uri)
return File.extname(path) == @extension
end
end
class PathSkipper
def initialize(root_path, relative_path)
@root_path = root_path
@absolute_path = File.expand_path(relative_path, @root_path)
end
def skip?(path, line, uri)
return @absolute_path == File.expand_path(path, @root_path)
end
end
class LineSkipper
def initialize(root_path, relative_path, line_number)
@inner = PathSkipper.new(root_path, relative_path)
@line_number = line_number
end
def skip?(path, line, uri)
return @inner.skip?(path, line, uri) && line == @line_number
end
end
class KnownExceptions
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def parse_file(file)
skippers = []
File.readlines(file).each do |line|
# ignore blank lines, and lines starting with '#' or '!'.
line.strip!
next if line.length == 0 || line[0..0] == '#' || line[0] == ?!
# if line =~ /^\.[^\/]*$/
# skippers << ExtensionSkipper.new(line)
if line =~ /^(\S+)\s*$/
# skippers << PathSkipper.new(@root_path, $1)
skippers << GlobSkipper.new(@root_path, $1)
elsif line =~ /^(\S+)\s*(\d+)\s*$/
skippers << LineSkipper.new(@root_path, $1, $2.to_i)
else
raise "BOGUS line in known_exceptions file: '#{line}'"
end
end
skippers
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(root_path, file)
@root_path = File.expand_path(root_path)
@skippers = parse_file(file)
end
def skip?(file, line_number = -1, string = "@!#IMPOSSIBLE#!@")
@skippers.each() do |skipper|
if line_number == -1
next if skipper.is_a?(LineSkipper)
else
next if skipper.is_a?(ExtensionSkipper) || skipper.is_a?(PathSkipper) || skipper.is_a?(GlobSkipper)
end
if skipper.skip?(file, line_number, string)
return true
end
end
false
end
end

View file

@ -0,0 +1,120 @@
=begin
--------------------------------------------------------------------------------
A utility that scans the code base for the presence of URIs that were made
obsolete by the ISF transition.
Accept a file of obsolete URIs.
Blank lines or lines beginning with '#' are comments.
Each non-comment line contains an obsolete URI.
Accept a file of known exceptions.
Blank lines or lines beginning with '#' are comments.
Each non-comment line is in one of these forms:
.xxx - denotes an extension that is exempt from scanning
[filepath] - denotes a path, relative to the codebase root, of a
file that should not be scanned.
[filepath] [line number] - denotes a particular line in a file for
which no error should be reported.
[filepath] [line number] [uri] - denotes a particular line in a file
on which the given uri will not be reported.
The command line will look like this:
ruby obsoleteUriChecker.rb <directory_root> <obsolete_uri_file> <known_exceptions_file> [complete]
Where:
directory_root - the path to the top if the directory tree we are scanning
obsolete_uri_file - the path to the file that lists the obsolete URIs
known_exceptions_file - the path to the file that lists the events that we should ignore
complete - optional parameter; if present, check for :localname as well as for the full URL.
E.g.:
ruby obsoleteUriChecker.rb ../../.. ../../../productMods/WEB-INF/ontologies/update/diff.tab.txt known_exceptions.txt complete
--------------------------------------------------------------------------------
=end
$: << File.dirname(File.expand_path(__FILE__))
require 'known_exceptions'
require 'obsolete_uris'
require 'report'
require 'event'
require 'directory_walker'
class UsageError < StandardError; end
class ObsoleteUriChecker
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
#
# Parse the arguments and complain if they don't make sense.
#
def parse_arguments(args)
raise UsageError, "usage is: obsoleteUriChecker.rb <directory_root> <obsolete_uri_file> <known_exceptions_file> [complete]" unless (3..4).include?(args.length)
if args[3]
raise UsageError, "If provided, the 4th argument must be 'complete'" unless args[3].downcase == 'complete'
complete = true
else
complete = false
end
directory_root = args[0]
raise UsageError, "Directory '#{directory_root}' does not exist." unless File.exist?(directory_root)
raise UsageError, "Directory '#{directory_root}' is not a directory." unless File.directory?(directory_root)
obsolete_uri_file = args[1]
raise UsageError, "File '#{obsolete_uri_file}' does not exist." unless File.exist?(obsolete_uri_file)
obsolete_uris = ObsoleteUris.new(obsolete_uri_file)
known_exceptions_file = args[2]
raise UsageError, "File '#{known_exceptions_file}' does not exist." unless File.exist?(known_exceptions_file)
known_exceptions = KnownExceptions.new(directory_root, known_exceptions_file)
return directory_root, obsolete_uris, known_exceptions, complete
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(args)
@directory_root, @obsolete_uris, @known_exceptions, @complete = parse_arguments(args)
@report = Report.new(args, @directory_root)
rescue UsageError => e
puts "\n----------------\nUsage error\n----------------\n\n#{e}\n\n----------------\n\n"
exit
rescue ObsoleteUrisError => e
puts "\n----------------\nObsolete Uris file is invalid\n----------------\n\n#{e}\n\n----------------\n\n"
exit
rescue KnownExceptionsError => e
puts "\n----------------\Known Exceptions file is invalid\n----------------\n\n#{e}\n\n----------------\n\n"
exit
end
def scan()
walker = DirectoryWalker.new(@directory_root, @obsolete_uris, @known_exceptions, @report, @complete)
walker.walk
end
def report()
@report.report()
end
end
#
#
# ------------------------------------------------------------------------------------
# Standalone calling.
#
# Do this if this program was called from the command line. That is, if the command
# expands to the path of this file.
# ------------------------------------------------------------------------------------
#
if File.expand_path($0) == File.expand_path(__FILE__)
checker = ObsoleteUriChecker.new(ARGV)
checker.scan()
checker.report()
end

View file

@ -0,0 +1,42 @@
class ObsoleteUrisError < StandardError; end
class ObsoleteUris
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def get_localname(uri)
delimiter = uri.rindex(/[\/#]/)
return uri[delimiter+1..-1] if delimiter
raise "BOGUS URI in obsolete_uris file -- no localname: '#{uri}'"
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(file)
@uris = []
@localnames = []
File.read(file).split(/[\r\n]+/).each do |line|
# ignore blank lines, and lines starting with '#' or '!'.
line.strip!
next if line.length == 0 || line[0..0] == '#' || line[0] == ?!
if line =~ /^(\S+)/
@uris << $1
@localnames << get_localname($1)
else
raise "BOGUS line in obsolete_uris file: '#{line}'"
end
end
end
def uris()
@uris
end
def localnames()
@localnames
end
end

View file

@ -0,0 +1,78 @@
class Report
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def relativize(path)
Pathname.new(path).relative_path_from(Pathname.new(@directory_root)).to_s
end
def state_arguments()
puts
puts "-----------------------------------------------------------------"
puts " directory to scan = #{@args[0]}"
puts " obsolete_uris_file = #{@args[1]}"
puts " known exceptions file = #{@args[2]}"
puts " complete = #{!@args[3].nil?}"
puts "-----------------------------------------------------------------"
puts
end
def file_summary()
puts " scanned #{@file_count} files"
@extensions_count.sort.each do |pair|
puts " #{pair[0]} #{pair[1]}"
end
puts "-----------------------------------------------------------------"
puts
end
def collate_and_list_events()
hash = Hash.new{|h, k| []}
@events.each do |event|
hash[event.path] = hash[event.path] << event
end
hash.sort.each do |path, events|
puts "#{relativize(path)}"
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e|
trimmed =
if e.line.size <= 100
e.line
else
e.line[0..97] << "..."
end
puts " #{e.line_number} #{trimmed}"
puts " #{e.is_localname ? "Localname" : "URI"} #{e.string}"
end
puts "--------------------"
end
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(args, directory_root)
@args = args;
@directory_root = directory_root
@file_count = 0
@extensions_count = Hash.new(0)
@events = []
end
def register_file(path)
@file_count += 1
@extensions_count[File.extname(path)] += 1
end
def add_event(event)
@events << event
end
def report()
state_arguments()
file_summary()
collate_and_list_events()
end
end

View file

@ -0,0 +1,68 @@
bin
utilities/ISF-transition/obsoleteUris
*.GIF
*.as
*.class
*.fla
*.gif
*.gz
*.ico
*.jar
*.jpg
*.psd
*.png
*.swf
*.war
*.zip
**/.*
#
# first_pass: no excluded files. everything was duplicated in the .bin directory, and
# probably in the .build directory also. Ran against the repository, so VIVO
# only.
#
# 7498 89730 2277668 first_pass.output
#
productMods/WEB-INF/ontologies/update/oldVersion/vivo-event-1.5.owl
productMods/WEB-INF/ontologies/update/oldAnnotations/vivo-core-1.5-annotations.rdf
productMods/WEB-INF/ontologies/update/diff.tab.txt
#
# second_pass: excluded these nasty files. Ran against a clean distro, with VIVO and
# Vitro, but no .bin or .build
#
# 1798 5159 170092 second_pass.output
#
productMods/WEB-INF/ontologies/update/oldVersion/vivo-foaf-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-core-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-bibo-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/scires-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcterms-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcelements-1.5.owl
#
# Exclude old performance tests
#
utilities/LoadTesting/distros/release1.4/deploy.properties.template
#
# Exclude the migration code itself
#
productMods/WEB-INF/ontologies/update/**/*
#
# This is commented out.
#
src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
#
# The URI is obsolete, but it has been replaced by another URI with the same localname.
# http://purl.org/dc/terms/publisher http://vivoweb.org/ontology/core#publisher
# How to catch this?
#

View file

@ -0,0 +1,40 @@
.GIF
.as
.class
.fla
.gif
.gz
.ico
.jar
.jpg
.psd
.png
.swf
.war
.zip
#
# first_pass: no excluded files. everything was duplicated in the .bin directory, and
# probably in the .build directory also. Ran against the repository, so VIVO
# only.
#
# 7498 89730 2277668 first_pass.output
#
productMods/WEB-INF/ontologies/update/oldVersion/vivo-event-1.5.owl
productMods/WEB-INF/ontologies/update/oldAnnotations/vivo-core-1.5-annotations.rdf
productMods/WEB-INF/ontologies/update/diff.tab.txt
#
# second_pass: excluded these nasty files. Ran against a clean distro, with VIVO and
# Vitro, but no .bin or .build
#
# 1798 5159 170092 second_pass.output
#
productMods/WEB-INF/ontologies/update/oldVersion/vivo-foaf-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-core-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-bibo-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/scires-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcterms-1.5.owl
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcelements-1.5.owl

View file

@ -0,0 +1,19 @@
The distros directory contains subdirectories, each with a VIVO distribution, as checked out from Subversion.
These can be read-only checkouts. Examples of such directories might be release1.3, release1.4, trunk, etc.
Each distro directory contains:
The vivo and vitro workspace areas, as checked out from Subversion
deploy_properties.template
This is a deploy properties file suitable for building the distrbution.
Some property values are placeholders that will be set when the _deploy script is run.
Examples of placeholders include:
Vitro.defaultNamespace = <%= @default_namespace %>
vitro.home.directory = /home/jeb228/LoadTesting/versions/<%= @version_name %>/data
This means that when _deploy is run, it must have values for the variables
@default_namespace and @version_name, which it will substitute into the template.
distro_properties.rb
A ruby source file which defines some values which apply to the distribution.
Currently, the only value is @test_suffix.
For example, release1.4 uses @test_suffix = "-1-4", so if we select "TestA",
the _runTest script will look for a file called TestA-1-4.jtl, and run that.

View file

@ -0,0 +1,163 @@
# -----------------------------------------------------------------------------
#
# VIVO deployment properties
#
# This file is provided as example.deploy.properties.
#
# Save a copy of this file as deploy.properties, and edit the properties as
# needed for your deployment.
#
# -----------------------------------------------------------------------------
#
# This namespace will be used when generating URIs for objects created in the
# editor. Change it to reflect your own domain. For example, Cornell's
# namespace is http://vivo.cornell.edu/individual/
#
# Note: it is essential that this namespace end with a trailing slash.
#
Vitro.defaultNamespace = <%= @default_namespace %>
#
# Where is the Vitro core directory?
# In most deployments, this is set to ./vitro-core (It is not uncommon for this
# setting to point elsewhere in development environments).
# Examples:
# vitro.core.dir = ./vitro-core
# vitro.core.dir = ../vitro
# vitro.core.dir = /usr/local/vitro/trunk
vitro.core.dir = ../vitro
#
# The base install directory for your Tomcat server. The VIVO application
# will be deployed in the /webapps directory below this base.
#
tomcat.home = /home/jeb228/LoadTesting/tomcat
#
# The name of the VIVO application. This will be used as the name of the
# subdirectory within your Tomcat server's /webapps directory. It also appears
# in the URL for the application. For example, http://my.vivo.server/vivo
#
webapp.name = vivo
#
# URL of Solr context used in local VIVO search. This will usually consist of:
# scheme + server_name + port + vivo_webapp_name + "solr"
# In the standard installation, the Solr context will be on the same server as VIVO,
# and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
# above) + "solr"
# Example:
# vitro.local.solr.url = http://localhost:8080/vivosolr
vitro.local.solr.url = http://localhost:6080/vivosolr
#
# Restricts access to the Solr search platform. One or more regular expressions,
# separated by commas. When a request is made to Solr, the IP address of the
# requestor must match one of the patterns, or the request will be rejected.
# Examples:
# vitro.local.solr.ipaddress.mask = 127\.0\.0\.1
# vitro.local.solr.ipaddress.mask = 127\.0\.0\.1,0:0:0:0:0:0:0:1
# vitro.local.solr.ipaddress.mask = 169.254.*
vitro.local.solr.ipaddress.mask = 127\.0\.0\.1,0:0:0:0:0:0:0:1
#
# The location where the VIVO application will store the data that it creates.
# This includes uploaded files (usually images) and the search index.
#
vitro.home.directory = /home/jeb228/LoadTesting/versions/<%= @version_name %>/data
#
# SMTP host which the "Contact Us" form can use to send mail. If this is left
# empty, the "Contact Us" form will be disabled.
#
Vitro.smtpHost =
#
# The basic parameters for a database connection. Change the end of the
# URL to reflect your database name (if it is not "vitro"). Change the username
# and password to match the authorized database user you created. Increase the
# maximum size of the database connection pool if you need to serve a greater
# number of concurrent page requests.
#
VitroConnection.DataSource.url = jdbc:mysql://localhost/<%= @database_name %>
VitroConnection.DataSource.username = loadUser
VitroConnection.DataSource.password = loadPass
#
# The maximum number of active connections in the database connection pool.
# Increase this value to support a greater number of concurrent page requests
# with SDB. It is not necessary to adjust this value when using the
# RDB configuration.
#
VitroConnection.DataSource.pool.maxActive = 40
#
# The maximum number of database connections that will be allowed
# to remain idle in the connection pool. Default is 25%
# of the maximum number of active connections.
#
VitroConnection.DataSource.pool.maxIdle = 10
#
# Parameters to change in order to use VIVO with a database other than
# MySQL.
#
VitroConnection.DataSource.dbtype = MySQL
VitroConnection.DataSource.driver = com.mysql.jdbc.Driver
VitroConnection.DataSource.validationQuery = SELECT 1
#
# The email address of the root user for the VIVO application. The password
# for this user is initially set to "rootPassword", but you will be asked to
# change the password the first time you log in.
#
rootUser.emailAddress = <%= @root_user %>
#
# How is a logged-in user associated with a particular Individual? One way is
# for the Individual to have a property whose value is the username of the user.
# This value should be the URI for that property.
#
selfEditing.idMatchingProperty = http://vivoweb.org/ontology/core#scopusId
#
# If an external authentication system like Shibboleth or CUWebAuth is to be
# used, these properties say how the login button should be labeled, and which
# HTTP header will contain the user ID from the authentication system. If such
# a system is not to be used, leave these commented out. Consult the
# installation instructions for more details.
#
#externalAuth.buttonText = Log in using BearCat Shibboleth
#externalAuth.netIdHeaderName = remote_userID
#
# The temporal graph visualization can require extensive machine resources.
# This can have a particularly noticable impact on memory usage if
# - VIVO is configured to use Jena SDB,
# - The organization tree is deep,
# - The number of grants and publications is large.
# VIVO release 1.2 guards against this impact by disabling the temporal graph
# visualization unless the "visualization.temporal" flag is set to "enabled".
#
# visualization.temporal = enabled
#
# The temporal graph visualization is used to compare different organizations/people
# within an organization on parameters like number of publications or grants.
# By default, the app will attempt to make its best guess at the top level
# organization in your instance. If you're unhappy with this selection, uncomment out
# the property below and set it to the URI of the organization individual you want to
# identify as the top level organization. It will be used as the default whenever the
# temporal graph visualization is rendered without being passed an explicit org.
# For example, to use "Ponce School of Medicine" as the top organization:
# visualization.topLevelOrg = http://vivo.psm.edu/individual/n2862
#
# visualization.topLevelOrg = http://vivo.mydomain.edu/individual/topLevelOrgURI
#
# Default type(s) for Google Refine Reconciliation Service
# The format for this property is id, name; id1, name1; id2, name2 etc.
# See Service Metadata from this page http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi
# for more information.
Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Course, Course; http://vivoweb.org/ontology/core#Grant, Grant; http://aims.fao.org/aos/geopolitical.owl, Location; http://xmlns.com/foaf/0.1/Organization, Organization; http://xmlns.com/foaf/0.1/Person, Person; http://purl.org/ontology/bibo/Article, Publication

View file

@ -0,0 +1,2 @@
# properties for this distribution
@test_suffix = '-1-3'

View file

@ -0,0 +1,179 @@
# -----------------------------------------------------------------------------
#
# VIVO deployment properties
#
# This file is provided as example.deploy.properties.
#
# Save a copy of this file as deploy.properties, and edit the properties as
# needed for your deployment.
#
# -----------------------------------------------------------------------------
#
# This namespace will be used when generating URIs for objects created in the
# editor. In order to serve linked data, the default namespace must be composed
# as follows (optional elements in parentheses):
#
# scheme + server_name (+ port) (+ servlet_context) + "/individual/"
#
# For example, Cornell's default namespace is:
#
# http://vivo.cornell.edu/individual/
#
Vitro.defaultNamespace = <%= @default_namespace %>
#
# Where is the Vitro core directory?
# In most deployments, this is set to ./vitro-core (It is not uncommon for this
# setting to point elsewhere in development environments).
# Examples:
# vitro.core.dir = ./vitro-core
# vitro.core.dir = ../vitro
# vitro.core.dir = /usr/local/vitro/trunk
vitro.core.dir = ../vitro
#
# The base install directory for your Tomcat server. The VIVO application
# will be deployed in the /webapps directory below this base.
#
tomcat.home = /home/jeb228/LoadTesting/tomcat
#
# The name of the VIVO application. This will be used as the name of the
# subdirectory within your Tomcat server's /webapps directory. It also appears
# in the URL for the application. For example, http://my.vivo.server/vivo
#
webapp.name = vivo
#
# URL of Solr context used in local VIVO search. This will usually consist of:
# scheme + server_name + port + vivo_webapp_name + "solr"
# In the standard installation, the Solr context will be on the same server as VIVO,
# and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
# above) + "solr"
# Example:
# vitro.local.solr.url = http://localhost:8080/vivosolr
vitro.local.solr.url = http://localhost:6080/vivosolr
#
# Restricts access to the Solr search platform. One or more regular expressions,
# separated by commas. When a request is made to Solr, the IP address of the
# requestor must match one of the patterns, or the request will be rejected.
# Examples:
# vitro.local.solr.ipaddress.mask = 127\.0\.0\.1
# vitro.local.solr.ipaddress.mask = 127\.0\.0\.1,0:0:0:0:0:0:0:1
# vitro.local.solr.ipaddress.mask = 169.254.*
# If this expression doesn't match the IP address, you will see SolrExceptions
# in the log.
vitro.local.solr.ipaddress.mask = 127\.0\.0\.1,[0:]+:1[^:]*,
#
# The location where the VIVO application will store the data that it creates.
# This includes uploaded files (usually images) and the search index.
#
vitro.home.directory = /home/jeb228/LoadTesting/versions/<%= @version_name %>/data
#
# Email parameters which VIVO can use to send mail. If these are left empty,
# the "Contact Us" form will be disabled and users will not be notified of
# changes to their accounts.
#
email.smtpHost =
email.replyTo = vivoAdmin@mydomain.edu
#
# The basic parameters for a database connection. Change the end of the
# URL to reflect your database name (if it is not "vitrodb"). Change the username
# and password to match the authorized database user you created.
#
VitroConnection.DataSource.url = jdbc:mysql://localhost/<%= @database_name %>
VitroConnection.DataSource.username = loadUser
VitroConnection.DataSource.password = loadPass
#
# The maximum number of active connections in the database connection pool.
# Increase this value to support a greater number of concurrent page requests.
#
VitroConnection.DataSource.pool.maxActive = 40
#
# The maximum number of database connections that will be allowed
# to remain idle in the connection pool. Default is 25%
# of the maximum number of active connections.
#
VitroConnection.DataSource.pool.maxIdle = 10
#
# Parameters to change in order to use VIVO with a database other than
# MySQL.
#
VitroConnection.DataSource.dbtype = MySQL
VitroConnection.DataSource.driver = com.mysql.jdbc.Driver
VitroConnection.DataSource.validationQuery = SELECT 1
#
# The email address of the root user for the VIVO application. The password
# for this user is initially set to "rootPassword", but you will be asked to
# change the password the first time you log in.
#
rootUser.emailAddress = <%= @root_user %>
#
# How is a logged-in user associated with a particular Individual? One way is
# for the Individual to have a property whose value is the username of the user.
# This value should be the URI for that property.
#
selfEditing.idMatchingProperty = http://vivoweb.org/ontology/core#scopusId
#
# If an external authentication system like Shibboleth or CUWebAuth is to be
# used, these properties say how the login button should be labeled, and which
# HTTP header will contain the user ID from the authentication system. If such
# a system is not to be used, leave these commented out. Consult the
# installation instructions for more details.
#
#externalAuth.buttonText = Log in using BearCat Shibboleth
#externalAuth.netIdHeaderName = remote_userID
#
# The temporal graph visualization can require extensive machine resources.
# This can have a particularly noticeable impact on memory usage if
# - The organization tree is deep,
# - The number of grants and publications is large.
# VIVO 1.3 release mitigates this problem by the way of a caching mechanism &
# hence we can safely set this to be enabled by default.
#
visualization.temporal = enabled
#
# The temporal graph visualization is used to compare different organizations/people
# within an organization on parameters like number of publications or grants.
# By default, the app will attempt to make its best guess at the top level
# organization in your instance. If you're unhappy with this selection, uncomment out
# the property below and set it to the URI of the organization individual you want to
# identify as the top level organization. It will be used as the default whenever the
# temporal graph visualization is rendered without being passed an explicit org.
# For example, to use "Ponce School of Medicine" as the top organization:
# visualization.topLevelOrg = http://vivo.psm.edu/individual/n2862
#
# visualization.topLevelOrg = http://vivo.mydomain.edu/individual/topLevelOrgURI
#
# Absolute path on the server of the Harvester root directory.
# You must include the final slash.
# Setting a value for harvester.location indicates that the Harvester is installed at
# this path. This will enable the Harvester functions in the Ingest Tools page.
#
# harvester.location = /usr/local/vivo/harvester/
#
# Default type(s) for Google Refine Reconciliation Service
# The format for this property is id, name; id1, name1; id2, name2 etc.
# See Service Metadata from this page http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi
# for more information.
Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Role, core:Role; http://vivoweb.org/ontology/core#AcademicDegree, core:Academic Degree; http://purl.org/NET/c4dm/event.owl#Event, event:Event; http://vivoweb.org/ontology/core#Agreement, core:Agreement; http://vivoweb.org/ontology/core#Location, core:Location; http://xmlns.com/foaf/0.1/Organization, foaf:Organization; http://xmlns.com/foaf/0.1/Person, foaf:Person; http://vivoweb.org/ontology/core#InformationResource, core:Information Resource
#
# Types of individual for which we can create proxy editors.
# If this is omitted, defaults to http://www.w3.org/2002/07/owl#Thing
proxy.eligibleTypeList = http://xmlns.com/foaf/0.1/Person, http://xmlns.com/foaf/0.1/Organization

View file

@ -0,0 +1,2 @@
# properties for this distribution
@test_suffix = '-1-4'

View file

@ -0,0 +1,6 @@
Contains a distribution of JMeter. The _runTest script looks here to find
the executable of JMeter, and also to find the XSL stylesheet used to convert *.jtl files to *.html files.
Currently, we're using JMeter 2.4, so the directory contains jakarta-jmeter-2.4.zip and
an unpacked version in the directory jakarta-jmeter-2.4

View file

@ -0,0 +1,16 @@
Contains all sorts of data that is particular to each site.
MySQL dumps.
The ones we got from the drop box, and anything that we derived from them
that was worth capturing instead of rebuilding.
Zip of upload directory
Either obtained from the drop box, or what we created using UploadImageFaker
CSV files containing test data
We create CSV files that contina URIs of Persons, InfoResources, and Authors.
The tests use these files when deciding which pages to fetch. These are site
dependent.
Also contains the _patches_and_queries directory, which contains its own readme file.

View file

@ -0,0 +1,19 @@
Contains:
Patches - used to modify the model to make it ready for testing.
userAccountsPatch.n3
Ingest this into the user-accounts model. It contains RDF for testAdmin@mydomain.edu
and selfEditor@mydomain.edu. Each has logged in previously, and each has the
password of "Password".
Queries - used to extract data from the model, for the tests to use.
get_info_resource_uris.sparql
Execute this SPARQL query and get the results in CSV. Remove any
URIs that are not in the default namespace, and then remove the default namespace
from each remaining URI. save as infoResourceUris.csv in the
modelData/[sitename] directory.
get_person_uris.sparql
Like the previous, but saved as personUris.csv
image_file_query.sparql
Save the results without alteration as modelData/[sitename]/imageFileInfo.csv, to
be processed by the _fakeUploadedFiles script.

View file

@ -0,0 +1,9 @@
PREFIX core: <http://vivoweb.org/ontology/core#>
SELECT ?uri
WHERE
{
?uri a core:InformationResource .
}
limit 300

View file

@ -0,0 +1,9 @@
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX core: <http://vivoweb.org/ontology/core#>
SELECT ?uri
WHERE
{
?uri a foaf:Person ;
}
limit 300

View file

@ -0,0 +1,17 @@
#
# Run this sparql query and format the output as CSV to find a list of
# everywhere that VIVO expects to find an image file.
#
# Process the result file with ????? to insert dummy images in all of
# those locations.
#
PREFIX p.1: <http://vitro.mannlib.cornell.edu/ns/vitro/public#>
SELECT ?bytestreamUri ?filename
WHERE
{
?fileUri p.1:downloadLocation ?bytestreamUri;
p.1:filename ?filename.
}

View file

@ -0,0 +1,50 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<http://vivo.scripps.edu/individual/uSelf>
a <http://vitro.mannlib.cornell.edu/ns/vitro/authorization#UserAccount> ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#emailAddress>
"selfEditor@mydomain.edu"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#externalAuthId>
"seditor"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#firstName>
"self"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#hasPermissionSet>
<http://permissionSet-1> ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#lastLoginTime>
"1322673007960"^^xsd:long ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#lastName>
"editor"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#loginCount>
"2"^^xsd:int ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#md5password>
"DC647EB65E6711E155375218212B3964"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#passwordLinkExpires>
"0"^^xsd:long ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#status>
"ACTIVE"^^xsd:string .
<http://vivo.scripps.edu/individual/uAdmin>
a <http://vitro.mannlib.cornell.edu/ns/vitro/authorization#UserAccount> ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#emailAddress>
"testAdmin@mydomain.edu"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#externalAuthId>
"tadmin"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#firstName>
"test"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#hasPermissionSet>
<http://permissionSet-50> ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#lastLoginTime>
"1322673030151"^^xsd:long ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#lastName>
"admin"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#loginCount>
"3"^^xsd:int ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#md5password>
"DC647EB65E6711E155375218212B3964"^^xsd:string ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#passwordLinkExpires>
"0"^^xsd:long ;
<http://vitro.mannlib.cornell.edu/ns/vitro/authorization#status>
"ACTIVE"^^xsd:string .

View file

@ -0,0 +1,44 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Copy the Tomcat logs into a time-stamped directory in the current "version"
directory, for possible inspection later.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require 'date'
require "#{File.dirname(__FILE__)}/subscripts/loadParms"
def figure_time_stamp()
return DateTime.now.strftime("%Y-%m-%d_%H-%M-%S")
end
def add_read_me()
puts "Add a comment for the README.txt file"
comment = STDIN.gets.strip
return if comment.empty?
File.open('README.txt', "w") do |file|
file.puts comment
end
end
@tomcat_logs_dir = version_file('tomcatLogs')
if (! File.directory?(@tomcat_logs_dir))
Dir.mkdir(@tomcat_logs_dir)
end
Dir.chdir(@tomcat_logs_dir) do |path|
@this_logs_dir = "#{path}/#{figure_time_stamp()}"
Dir.mkdir(@this_logs_dir)
end
Dir.chdir(@this_logs_dir) do |path|
system("cp #{@home}/tomcat/logs/* .")
add_read_me()
end

View file

@ -0,0 +1,13 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
See whether our Tomcat is running (not the Tomcat that runs the national index).
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
puts system("ps -ef | grep tomcat | grep -v usr/local/tomcat")

View file

@ -0,0 +1,14 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Remove any Tomcat logs.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts system("rm #{@home}/tomcat/logs/*")

View file

@ -0,0 +1,43 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Build and deploy the currently selected version of VIVO.
Remove vivo from Tomcat, so we know we start with clean slate.
Create the deploy.properties file by substituting current values into the
template. Then run the build script.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require 'erb'
def process_template_file(source, target)
File.open(source) do |source_file|
File.open(target, 'w') do |target_file|
raw = source_file.read()
cooked = ERB.new(raw).result
target_file.write(cooked)
end
end
end
puts system("rm -r #{@home}/tomcat/webapps/vivo*")
puts system("rm -r #{@home}/tomcat/conf/Catalina/localhost/vivo*")
puts system("rm -r #{@home}/tomcat/work/Catalina/localhost/vivo*")
if (@is_git)
process_template_file(distro_file("build.properties.template"), distro_file("VIVO/build.properties"))
process_template_file(distro_file("runtime.properties.template"), version_file("data/runtime.properties"))
Dir.chdir(distro_file("VIVO")) { |path| system "ant clean deploy" }
else
process_template_file(distro_file("deploy.properties.template"), distro_file("vivo/deploy.properties"))
Dir.chdir(distro_file("vivo")) { |path| system "ant clean deploy" }
end

View file

@ -0,0 +1,36 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Look through the uploads directory in the currently selected version, and insure
that an image file exists wherever the data model expects one.
This requires an imageFileInfo.csv, which was produced by a SPARQL query against
the data model.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require "subscripts/upload_file_faker"
properties = {}
properties["uploads_directory"] = version_file('data/uploads')
properties["file_info_file"] = "#{@home}/modelData/#{@site_name}/imageFileInfo.csv"
properties["template_file"] = "#{@home}/scripts/subscripts/dummy_image_file.jpg"
if ARGV.length == 1 && ARGV[0] == "doit"
properties["scan_only"] = "false"
else
puts "Just scanning unless you say: \"doit\""
properties["scan_only"] = "true"
end
uff = UploadFileFaker.new(properties)
uff.process
puts "UploadFileFaker was successful."

View file

@ -0,0 +1,14 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
View the VIVO log in Tomcat.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts system("less #{@home}/tomcat/logs/vivo.all.log")

View file

@ -0,0 +1,40 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Look through the test results for the currently-selected version, and merge them
into an HTML file so we can easily compare them.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
require 'subscripts/test_result_merger'
properties = {}
source_dir = "#{@home}/testinfo/results/#{@site_name}"
properties["source_directory"] = source_dir
properties["target_directory"] = "#{@home}/webpages/"
properties["site_name"] = "#{@site_name}"
suggestions = []
if File.directory?(source_dir)
Dir.chdir(source_dir) do |dir|
if File.file?("fileOrderSuggestions.txt")
File.open("fileOrderSuggestions.txt") do |f|
f.each_line() do |line|
suggestions.push(line.strip())
end
end
end
end
end
properties["file_order_suggestions"] = suggestions
trm = TestResultMerger.new(properties)
trm.merge
puts "TestResultMerger was successful."

View file

@ -0,0 +1,96 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Try to connect to the webapp. If we can't connect, then give up.
Run the JMeter test with appropriate parameters.
Use XSL to create an HTML version of the results.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
def locate_files()
test_full_name = "#{@test_name}#{@test_suffix}"
test_source_dir = test_file("tests/#{@test_name}")
@test_jmx_file = "#{test_source_dir}/#{test_full_name}.jmx"
raise "Test file doesn't exist: '#{@test_jmx_file}'." unless File.file?(@test_jmx_file)
result_dir = test_file("results/#{@site_name}")
Dir.mkdir(result_dir) unless File.directory?(result_dir)
@test_jtl_file = "#{result_dir}/#{test_full_name}.jtl"
File.delete(@test_jtl_file) if File.file?(@test_jtl_file)
@test_log_file = "#{result_dir}/#{test_full_name}.log"
File.delete(@test_log_file) if File.file?(@test_log_file)
@test_html_file = "#{result_dir}/#{test_full_name}.html"
File.delete(@test_html_file) if File.file?(@test_html_file)
data_dir = "#{@home}/modelData/#{@site_name}"
@person_uris_file = "#{data_dir}/personUris.csv"
raise "Person URIs file doesn't exist: '#{@person_uris_file}'" unless File.file?(@person_uris_file)
@infoResource_uris_file = "#{data_dir}/infoResourceUris.csv"
raise "InfoResource URIs file doesn't exist: '#{@infoResource_uris_file}'" unless File.file?(@infoResource_uris_file)
@author_uris_file = "#{data_dir}/authorUris.csv"
raise "Author URIs file doesn't exist: '#{@author_uris_file}'" unless File.file?(@author_uris_file)
@xsl_stylesheet_file = "#{@home}/jmeter/jakarta-jmeter-2.4/extras/jmeter-results-report_21.xsl"
end
def prepare_jmeter_properties()
props = {}
# set parameters for the tests
props["webapp.host"] = "localhost"
props["webapp.port"] = "6080"
props["webapp.name"] = "vivo"
props["iterations"] = @test_iterations
props["threads"] = @test_threads
props["file.person.uris"] = @person_uris_file
props["file.infoResource.uris"] = @infoResource_uris_file
props["file.author.uris"] = @author_uris_file
props["default.namespace"] = @default_namespace
# set parameters for the output
props["jmeter.save.saveservice.output_format"] = "xml"
props["jmeter.save.saveservice.response_data.on_error"] = "true"
props["jmeter.save.saveservice.url"] = "true"
props["jmeter.save.saveservice.bytes"] = "true"
# show a summary line periodically, so we know it's running. -->
props["summariser.name"] = "summary"
props["summariser.out"] = "true"
props["summariser.log"] = "true"
props["summariser.interval"] = "10"
@jmeter_properties = ""
props.each() do |key, value|
@jmeter_properties << "-J#{key}=#{value} "
end
end
def test_the_webapp()
puts "BOGUS test_the_webapp()"
end
locate_files()
prepare_jmeter_properties()
test_the_webapp()
Dir.chdir("#{@home}/jmeter/jakarta-jmeter-2.4/bin") do |path|
puts "RUNNING TESTS"
system "./jmeter -n -t #{@test_jmx_file} -l #{@test_jtl_file} -j #{@test_log_file} #{@jmeter_properties}"
puts "CONVERTING TO HTML"
system "xsltproc -o #{@test_html_file} #{@xsl_stylesheet_file} #{@test_jtl_file}"
end

View file

@ -0,0 +1,64 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Select the name of the test that we will be running, based on the directories
in testinfo/tests directory.
Record that selection, along with the desired number of iterations and threads.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
begin
require File.expand_path('subscripts/common', File.dirname(__FILE__))
rescue LoadError => e
puts e
end
@test_parms_file = "#{@home}/scripts/subscripts/_current_test.rb"
# Find out what tests we have available
def build_test_list()
@test_names = []
Dir.foreach(test_file('tests')) do |filename|
@test_names.push(filename) unless filename[0,1] == "."
end
@test_names.sort!
raise "Found no test directories." if @test_names.length == 0
end
# Write the current version to the file
def write_current_test(name, threads, iterations)
File.open(@test_parms_file, "w") do |file|
file.puts "# what is the current test, and how many times will it run?"
file.puts "@test_name = '#{name}'"
file.puts "@test_threads = '#{threads}'"
file.puts "@test_iterations = '#{iterations}'"
end
puts "test set to #{name}, #{threads} threads, #{iterations} iterations."
end
#
# ---------------------------------------------------------
# MAIN ROUTINE
# ---------------------------------------------------------
#
build_test_list()
puts "Enter test number: "
@test_names.each_index do |index|
puts " #{index+1} = #{@test_names[index]}"
end
number = STDIN.gets.chomp.to_i
if number <= 0 || number > @test_names.length
puts "UNRECOGNIZED TEST."
exit
end
write_current_test(@test_names[number - 1], 1, 1)

View file

@ -0,0 +1,60 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Choose a version from among the subdirectories in the versions directory and
record that choice.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
begin
require File.expand_path('subscripts/common', File.dirname(__FILE__))
rescue LoadError => e
puts e
end
@version_parms_file = "#{@home}/scripts/subscripts/_current_version.rb"
# Find out what versions we have available
def build_version_list()
@version_names = []
Dir.foreach("#{@home}/versions") do |filename|
@version_names.push(filename) unless (filename[0,1] == "_") || (filename[0,1] == ".")
end
@version_names.sort!
raise "Found no version directories." unless @version_names.length > 0
end
# Write the current version to the file
def write_current_version(name)
File.open(@version_parms_file, "w") do |file|
file.puts "# what is the current version under test?"
file.puts "@version_name = '#{name}'"
end
puts "version set to #{name}"
end
#
# ---------------------------------------------------------
# MAIN ROUTINE
# ---------------------------------------------------------
#
build_version_list()
puts "Enter version number: "
@version_names.each_index do |index|
puts " #{index+1} = #{@version_names[index]}"
end
number = STDIN.gets.chomp.to_i
if number <= 0 || number > @version_names.length
puts "UNRECOGNIZED VERSION."
exit
end
write_current_version(@version_names[number - 1])

View file

@ -0,0 +1,15 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Duh
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts system("#{@home}/tomcat/bin/startup.sh")

View file

@ -0,0 +1,21 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Show the SVN status of the currently-selected distro, both VIVO and Vitro.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
if (@is_git)
Dir.chdir(distro_file('Vitro')) { |path| system "svn status -u" }
Dir.chdir(distro_file('VIVO')) { |path| system "svn status -u" }
else
Dir.chdir(distro_file('vitro')) { |path| system "svn status -u" }
Dir.chdir(distro_file('vivo')) { |path| system "svn status -u" }
end

View file

@ -0,0 +1,15 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Duh
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts system("#{@home}/tomcat/bin/shutdown.sh")

View file

@ -0,0 +1,14 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Start following the tails of all of the logs in Tomcat.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts system("tail -f #{@home}/tomcat/logs/*")

View file

@ -0,0 +1,20 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Use SVN to get the latest revisions to the currently-selected distro.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
if (@is_git)
Dir.chdir(distro_file('Vitro')) { |path| system "git pull" }
Dir.chdir(distro_file('VIVO')) { |path| system "git pull" }
else
Dir.chdir(distro_file('vitro')) { |path| system "svn update" }
Dir.chdir(distro_file('vivo')) { |path| system "svn update" }
end

View file

@ -0,0 +1,15 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
What is the currently-selected test?
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts "Current test is #{@test_name}, #{@test_threads} threads, #{@test_iterations} iterations"

View file

@ -0,0 +1,15 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
What is the currently-selected version?
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
require File.expand_path('subscripts/common', File.dirname(__FILE__))
puts "Current version is #{@version_name}"

View file

@ -0,0 +1,33 @@
#
# The path to the LoadTesting directory. Everything is based on this
#
@home = File.expand_path("../..", File.dirname(__FILE__))
#
# 'require' should look in the scripts directory
#
$: << File.expand_path('scripts', @home)
#
# convenience methods to access files
#
def version_file(path)
"#{@home}/versions/#{@version_name}/#{path}"
end
def distro_file(path)
"#{@home}/distros/#{@distro_name}/#{path}"
end
def site_file(path)
"#{@home}/sites/#{@site_name}/#{path}"
end
def test_file(path)
"#{@home}/testinfo/#{path}"
end
#
# All of the scripts need to load these parms. (Except _setVersion and _setTest)
#
require 'subscripts/loadParms'

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,6 @@
require 'subscripts/_current_version'
require 'subscripts/_current_test'
require version_file('version_properties')
require distro_file('distro_properties')
require site_file('site_properties')

View file

@ -0,0 +1,39 @@
=begin
--------------------------------------------------------------------------------
A utility class that reads a properties file and returns a hash containing the
properties.
--------------------------------------------------------------------------------
=end
class PropertyFileReader
# Read a properties file and return a hash.
#
# Parameters: the path to the properties file
#
# The hash includes the special property "properties_file_path", which holds
# the path to the properties file.
#
def self.read(file_path)
properties = {}
properties["properties_file_path"] = File.expand_path(file_path)
File.open(file_path) do |file|
file.each_line do |line|
line.strip!
if line.length == 0 || line[0] == ?# || line[0] == ?!
# ignore blank lines, and lines starting with '#' or '!'.
elsif line =~ /(.*?)\s*[=:]\s*(.*)/
# key and value are separated by '=' or ':' and optional whitespace.
properties[$1.strip] = $2
else
# No '=' or ':' means that the value is empty.
properties[line] = ''
end
end
end
return properties
end
end

View file

@ -0,0 +1,102 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Parse a file of JMeter test results (*./jtl), summarize the times for each test,
and make the summaries easily available.
--------------------------------------------------------------------------------
=end
require "rexml/document"
include REXML
# ------------------------------------------------------------------------------------
# TestResultSummary class
# ------------------------------------------------------------------------------------
class TestResultSummary
attr_reader :label
attr_reader :how_many
attr_reader :failures
attr_reader :min_time
attr_reader :max_time
attr_reader :avg_time
def addResult(result_element)
@how_many += 1
@failures += 1 unless result_element.attributes["s"] == "true"
time = result_element.attributes["t"].to_i
@total_time += time
@min_time = [@min_time, time].min
@max_time = [@max_time, time].max
@avg_time = @total_time / how_many
end
def initialize(result_element)
@label = result_element.attributes["lb"]
@how_many = 0
@failures = 0
@min_time = 100000000
@max_time = 0
@total_time = 0
addResult(result_element)
end
end
# ------------------------------------------------------------------------------------
# TestResultFile class
# ------------------------------------------------------------------------------------
class TestResultFile
attr_reader :filename
attr_reader :timestamp
attr_reader :summaries
attr_reader :version
def parse_result_file()
@summaries = {}
@version = "_"
file = File.new( @file_path )
doc = Document.new file
XPath.each(doc, "/testResults/httpSample") do | result |
test_label = result.attributes["lb"]
if @summaries[test_label] == nil
@summaries[test_label] = TestResultSummary.new(result)
else
@summaries[test_label].addResult(result)
end
end
XPath.each(doc, "version") do | version |
@version = version.attributes["name"]
end
end
def initialize(filename, source_directory)
raise("filename must not be nil") if filename == nil
raise("source_directory must not be nil") if source_directory == nil
@filename = filename
@source_directory = source_directory
if !File.directory?(@source_directory)
raise "Directory does not exist: '#{@source_directory}'."
end
@file_path = File.expand_path(filename + ".jtl", @source_directory)
if !File.file?(@file_path)
raise "File doesn't exist: '#{@file_path}'."
end
@timestamp = File.mtime(@file_path)
parse_result_file()
end
end

View file

@ -0,0 +1,161 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Parse a file of JMeter test results (*./jtl), summarize the times for each test,
and make the summaries easily available.
--------------------------------------------------------------------------------
=end
# ------------------------------------------------------------------------------------
# TestResultMarshaller class
# ------------------------------------------------------------------------------------
class TestResultMarshaller
def marshall()
File.open(@output_filename, 'w') do | out |
write_html_header(out)
write_table_header(out)
write_table_lines(out)
write_table_footer(out)
write_html_footer(out)
end
end
def write_html_header(out)
out.puts <<"EOF"
<html>
<head>
<link REL='STYLESHEET' TYPE='text/css' HREF='./mergedResults.css'>
<title>Performance tests for #{@site_name}</title>
</head>
<body>
EOF
end
def write_table_header(out)
top_cells = ['<th>&nbsp</th>']
@test_results.each do | test |
top_cells.push("<th colspan='3'>#{test.version}<br/>#{test.filename}<br/>#{test.timestamp.strftime('%Y-%m-%d %H:%M:%S')}</th>")
end
bottom_cells = ['<th>Test Name</th>']
@test_results.each do | test |
bottom_cells.push('<th>Iterations</th>')
bottom_cells.push('<th>time<br/>(min/max)</th>')
bottom_cells.push("<th>compare</th>")
end
out.puts <<"EOF"
<table class='testData' cellspacing='0'>
<tr>
#{top_cells.join("\n ")}
</tr>
<tr>
#{bottom_cells.join("\n ")}
</tr>
EOF
end
def write_table_lines(out)
all_test_names().each do | test_name |
out.puts <<"EOF"
<tr>
<td class='left'>#{test_name}</td>
#{format_test_results(test_name)}
</tr>
EOF
end
end
def all_test_names
names = []
@test_results.each do | test |
names.concat(test.summaries.keys)
end
names.uniq.sort
end
def format_test_results(test_name)
results = []
@test_results.each do | test |
results.push(format_test_result(test_name, test))
end
results.join("\n ")
end
def format_test_result(test_name, test)
s = test.summaries[test_name]
if s
<<"EOF"
<td class='open'>#{s.how_many}</td>
<td>
<table class='oneResult close' cellspacing='0'>
<tr>
<td rowspan='2'>#{format_millis(s.avg_time)}</td>
<td class='minmax'>#{format_millis(s.min_time)}</td>
</tr>
<tr>
<td class='minmax'>#{format_millis(s.max_time)}</td>
</tr>
</table>
</td>
<td>#{performance_ratio(test_name, s.avg_time)}</td>
EOF
else
<<"EOF"
<td class='open'>&nbsp;</td>
<td>
<table class='oneResult close' cellspacing='0'>
<tr>
<td rowspan='2'>&nbsp;</td>
<td class='minmax'>&nbsp;</td>
</tr>
<tr>
<td class='minmax'>&nbsp;</td>
</tr>
</table>
</td>
<td>&nbsp;</td>
EOF
end
end
def format_millis(millis)
"%.3f" % [millis.to_f / 1000]
end
def performance_ratio(test_name, time)
return "&nbsp;" if @test_results.empty?
return "&nbsp;" unless @test_results[0].summaries.key?(test_name)
s = @test_results[0].summaries[test_name]
reference = s.avg_time
return "&nbsp;" if reference == 0
return "#{"%.0f" % [time * 100 / reference]}%"
end
def write_table_footer(out)
out.puts "</table>"
end
def write_html_footer(out)
out.puts <<"EOF"
</body>
</html>
EOF
end
def initialize(target_directory, site_name, test_results)
@target_directory = target_directory
@site_name = site_name
@test_results = test_results
filename = "#{site_name}-merged_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}"
@output_filename = File.expand_path(filename, @target_directory)
end
end

View file

@ -0,0 +1,96 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Look through a directory of test results files (*.jtl), and produce an HTML file
that summarizes, merges, and compares the information.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
$: << File.dirname(File.expand_path(__FILE__))
require 'test_result_file'
require 'test_result_marshaller'
# ------------------------------------------------------------------------------------
# TestResultMerger class
# ------------------------------------------------------------------------------------
class TestResultMerger
#
# Do we have any chance of succeeding with these properties?
#
def sanity_checks_on_properties()
raise("Properties must contain a value for 'source_directory'") if @source_directory == nil
raise("Properties must contain a value for 'target_directory'") if @target_directory == nil
raise("Properties must contain a value for 'site_name'") if @site_name == nil
if !File.directory?(@source_directory)
raise "Not a directory: '#{@source_directory}'."
end
if !File.directory?(@target_directory)
raise "Not a directory: '#{@target_directory}'."
end
end
def parse_files()
test_result_files = build_file_list()
@test_results = []
test_result_files.each() do | test_result_file |
puts "Parsing #{test_result_file}"
@test_results.push(TestResultFile.new(test_result_file, @source_directory))
end
end
def build_file_list
existing_files = []
Dir.foreach(@source_directory) do | filename |
next unless File.extname(filename) == ".jtl"
existing_files.push(File.basename(filename, ".jtl"))
end
puts "BOGUS existing files = [#{existing_files.join(', ')}]"
file_list = []
@file_order_suggestions.each() do | suggestion|
if existing_files.include?(suggestion)
file_list.push(suggestion)
existing_files.delete(suggestion)
end
end
file_list.concat(existing_files)
puts "BOGUS file list = [#{file_list.join(', ')}]"
return file_list
end
def marshall()
marshaller = TestResultMarshaller.new(@target_directory, @site_name, @test_results)
marshaller.marshall()
end
def initialize(properties)
@source_directory = properties['source_directory']
@target_directory = properties['target_directory']
@site_name = properties['site_name']
@file_order_suggestions = properties['file_order_suggestions']
puts "source_directory = #{@source_directory}"
puts "target_directory = #{@target_directory}"
puts "site_name = #{@site_name}"
if (@file_order_suggestions == nil)
puts "file_order_suggestions = nil"
else
puts "file_order_suggestions = [#{@file_order_suggestions.join(', ')}]"
end
sanity_checks_on_properties
end
def merge()
parse_files()
marshall()
end
end

View file

@ -0,0 +1,246 @@
#! /usr/bin/ruby
=begin
--------------------------------------------------------------------------------
Take a file that MySQL produced listing the URIs and filenames of all expected
upload files. Scan through the uploads directory, creating such files wherever
they are needed.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
=end
$: << File.dirname(File.expand_path(__FILE__))
require 'date'
require 'fileutils'
require 'property_file_reader'
# ------------------------------------------------------------------------------------
# FileInfoFile class
# ------------------------------------------------------------------------------------
class FileInfoFile
attr_reader :default_namespace
attr_reader :data
def parse_info_line(line)
# Lines are in this form: "URI","filename"
match = line.match(/^"([^"]*)","([^"]*)"$/)
raise "Can't parse this line: '#{line}'" if !match
return match.captures[0], match.captures[1]
end
def parse_default_namespace(uri)
match = /^(.*)individual/.match(uri)
raise "Can't find default namespace: '#{uri}'" if match == nil
"#{match.captures[0]}individual/"
end
public
def initialize(filepath)
@data = []
File.open(filepath) do |f|
f.each() do |line|
@data.push(parse_info_line(line))
end
end
puts "parsed #{@data.length} lines."
@default_namespace = parse_default_namespace(@data[0][0])
puts "default namespace is '#{@default_namespace}'"
end
end
# ------------------------------------------------------------------------------------
# NamespacesFile class
#
# Read, query, modify and write the namespace-prefixes file.
# ------------------------------------------------------------------------------------
class NamespacesFile
NAMESPACES_FILENAME = 'file_storage_namespaces.properties'
public
def initialize(uploads_directory, scan_only)
@uploads_directory = uploads_directory
@scan_only = scan_only
Dir.chdir(@uploads_directory) do |dir|
@namespaces = {}
if File.file?(NAMESPACES_FILENAME)
@namespaces = PropertyFileReader.read(NAMESPACES_FILENAME)
@namespaces.delete("properties_file_path")
end
end
end
def add_namespace(namespace)
if @namespaces.has_value?(namespace)
puts "found prefix for #{namespace}"
return
end
'abcdefghijklmnopqrstuvwxyz'.split("").each do |this_char|
if (!@namespaces.has_key?(this_char))
@namespaces[this_char] = namespace
puts "assigned prefix = '#{this_char}'"
return
end
end
raise "all prefixes are used!"
end
def prefix(namespace)
@namespaces.each() do | key, value |
return key if value == namespace
end
raise "no prefix for '#{namespace}'"
end
def write()
if @scan_only
puts "Scan-only: not writing namespaces file"
else
Dir.chdir(@uploads_directory) do |dir|
File.open(NAMESPACES_FILENAME, "w") do |f|
@namespaces.each do |prefix, namespace|
f.puts "#{prefix} = #{namespace}"
end
end
end
end
end
end
# ------------------------------------------------------------------------------------
# Main class - UploadFileFaker
# ------------------------------------------------------------------------------------
class UploadFileFaker
#
# Do we have any chance of succeeding with these properties?
#
def sanity_checks_on_properties()
raise("Properties file must contain a value for 'uploads_directory'") if @uploads_directory == nil
raise("Properties file must contain a value for 'file_info_file'") if @file_info_file == nil
raise("Properties file must contain a value for 'template_file'") if @template_file == nil
if !File.directory?(@uploads_directory)
raise "Not a directory: '#{@uploads_directory}'."
end
if !File.file?(@file_info_file)
raise "File does not exist: '#{@file_info_file}'."
end
if !File.file?(@template_file)
raise "File does not exist: '#{@template_file}'."
end
end
#
# Check each location that should contain an image, and if we're not just
# scanning, put one there.
#
def create_image_files_where_needed()
@file_info.data.each do |line|
uri, filename = line
process_file_info(uri, filename)
end
end
def process_file_info(uri, filename)
full_path = figure_full_path(uri, filename)
if File.file?(full_path)
puts "File already exists at: '#{full_path}'"
elsif @scan_only
puts "Scan only - no file at: '#{full_path}'"
else
puts "Creating file at: '#{full_path}'"
FileUtils.mkpath(File.dirname(full_path))
FileUtils.cp(@template_file, full_path)
end
end
def figure_full_path(uri, filename)
prefixed_uri = substitute_prefix_for_namespace(uri)
construct_full_path(prefixed_uri, filename)
end
def substitute_prefix_for_namespace(uri)
if uri[0, @namespace.length] == @namespace
uri.sub(@namespace, "#{@prefix}~")
else
raise "Doesn't start with default namespace: '#{uri}'"
end
end
def construct_full_path(prefixed_uri, filename)
path = ""
0.step(prefixed_uri.size - 1, 3) do |i|
path = "#{path}/#{prefixed_uri[i, 3]}"
end
"#{@uploads_directory}/file_storage_root#{path}/#{filename}"
end
public
#
# Setup and get ready to process.
#
# properties is a map of keys to values, probably parsed from a properties file.
#
def initialize(properties)
scan_only_string = properties['scan_only']
@scan_only = 'false' != scan_only_string
@uploads_directory = properties['uploads_directory']
@file_info_file = properties['file_info_file']
@template_file = properties['template_file']
sanity_checks_on_properties()
end
#
# Start the scanning (and copying).
#
def process()
@file_info = FileInfoFile.new(@file_info_file)
@namespace = @file_info.default_namespace
namespaces_file = NamespacesFile.new(@uploads_directory, @scan_only)
namespaces_file.add_namespace(@namespace)
namespaces_file.write()
@prefix = namespaces_file.prefix(@namespace)
create_image_files_where_needed()
end
end
#
# ------------------------------------------------------------------------------------
# Standalone calling.
#
# Do this if this program was called from the command line. That is, if the command
# expands to the path of this file.
# ------------------------------------------------------------------------------------
#
if File.expand_path($0) == File.expand_path(__FILE__)
if ARGV.length == 0
raise("No arguments - usage is: UploadFileFaker.rb <property_file>")
end
if !File.file?(ARGV[0])
raise "File does not exist: '#{ARGV[0]}'."
end
properties = PropertyFileReader.read(ARGV[0])
uff = UploadFileFaker.new(properties)
uff.process
puts "UploadFileFaker was successful."
end

View file

@ -0,0 +1,7 @@
The sites directory contains sub-directories, one for each site whose data we are testing.
Each site directory (cornell, indiana, etc.) contains information specific to that site.
In particular, it contains a site_properties.rb file, which defines the default_namespace
and the email address of the root user, for inclusion in the deploy.properties file
by _deploy script.

View file

@ -0,0 +1,4 @@
# properties for this site
@default_namespace = 'http://vivo.cornell.edu/individual/'
@root_user = 'vivo_root@mydomain.edu'

View file

@ -0,0 +1,3 @@
# properties for this site
@default_namespace = 'http://vivo.iu.edu/individual/'
@root_user = 'vivo@indiana.edu'

View file

@ -0,0 +1,3 @@
# properties for this site
@default_namespace = 'http://vivo.scripps.edu/individual/'
@root_user = 'samtest@scripps.edu'

View file

@ -0,0 +1,15 @@
Contains both the JMeter source files for the tests, and the results of the tests.
The source files are stored hierarchically, so we can have multiple sources for each set of tests.
For example, the version of "SimpleTests" that is used with release 1.3 is stored in
testinfo/tests/SimpleTests/SimpleTests-1-3.jmx
That way _selectTest can determine what sets we have by the names of the subdirectories in tests,
and _runTest can use a distro-dependent version of the test set.
The results are stored in files that correspond the tests, and categorized by the site that
they run against, so if we run SimpleTests against cornell data on distro of release 1.3,
the results are stroed in
results/cornell/SimpleTests-1-3.jtl
results/cornell/SimpleTests-1-3.html
results/cornell/SimpleTests-1-3.log

View file

@ -0,0 +1,564 @@
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="WEBAPP_HOST" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_HOST</stringProp>
<stringProp name="Argument.value">${__property(webapp.host, , localhost)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_PORT" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_PORT</stringProp>
<stringProp name="Argument.value">${__property(webapp.port, , 8080)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_NAME" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_NAME</stringProp>
<stringProp name="Argument.value">${__property(webapp.name, , vivo)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="PERSON_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">PERSON_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.person.uris, , PersonUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="INFO_RESOURCE_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">INFO_RESOURCE_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.infoResource.uris, , InfoResourceUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ITERATIONS" elementType="Argument">
<stringProp name="Argument.name">ITERATIONS</stringProp>
<stringProp name="Argument.value">${__property(iterations, , 10)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DEFAULT_NAMESPACE" elementType="Argument">
<stringProp name="Argument.name">DEFAULT_NAMESPACE</stringProp>
<stringProp name="Argument.value">${__property(default.namespace, , http://vivo.mydomain.edu/individual/)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="THREADS" elementType="Argument">
<stringProp name="Argument.name">THREADS</stringProp>
<stringProp name="Argument.value">${__property(threads, , 1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Main Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">${ITERATIONS}</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${THREADS}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${THREADS}</stringProp>
<longProp name="ThreadGroup.start_time">1294759350000</longProp>
<longProp name="ThreadGroup.end_time">1294759350000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<stringProp name="CookieManager.policy">rfc2109</stringProp>
</CookieManager>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${WEBAPP_HOST}</stringProp>
<stringProp name="HTTPSampler.port">${WEBAPP_PORT}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<boolProp name="HTTPSampler.image_parser">true</boolProp>
</ConfigTestElement>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Not logged in" enabled="true">
<stringProp name="TestPlan.comments">These pages are run while the user is not logged in.</stringProp>
</GenericController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Home page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: About page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/about</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as DBA" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">testAdmin</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Site Admin" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/siteAdmin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete authorship" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?pubUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; core:authorInAuthorship ?authorshipUri . ?authorshipUri core:linkedInformationResource ?pubUri .}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="-977445585">pubUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete grant role" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?grantUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; &lt;http://vivoweb.org/ontology/core#hasPrincipalInvestigatorRole&gt; ?grantRole . ?grantRole core:roleIn ?grantUri .} </stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="99198640">grantUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as SelfEditor" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">dk15</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>

View file

@ -0,0 +1,564 @@
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="WEBAPP_HOST" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_HOST</stringProp>
<stringProp name="Argument.value">${__property(webapp.host, , localhost)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_PORT" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_PORT</stringProp>
<stringProp name="Argument.value">${__property(webapp.port, , 8080)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_NAME" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_NAME</stringProp>
<stringProp name="Argument.value">${__property(webapp.name, , vivo)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="PERSON_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">PERSON_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.person.uris, , PersonUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="INFO_RESOURCE_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">INFO_RESOURCE_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.infoResource.uris, , InfoResourceUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ITERATIONS" elementType="Argument">
<stringProp name="Argument.name">ITERATIONS</stringProp>
<stringProp name="Argument.value">${__property(iterations, , 10)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DEFAULT_NAMESPACE" elementType="Argument">
<stringProp name="Argument.name">DEFAULT_NAMESPACE</stringProp>
<stringProp name="Argument.value">${__property(default.namespace, , http://vivo.mydomain.edu/individual/)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="THREADS" elementType="Argument">
<stringProp name="Argument.name">THREADS</stringProp>
<stringProp name="Argument.value">${__property(threads, , 1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Main Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">${ITERATIONS}</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${THREADS}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${THREADS}</stringProp>
<longProp name="ThreadGroup.start_time">1294759350000</longProp>
<longProp name="ThreadGroup.end_time">1294759350000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<stringProp name="CookieManager.policy">rfc2109</stringProp>
</CookieManager>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${WEBAPP_HOST}</stringProp>
<stringProp name="HTTPSampler.port">${WEBAPP_PORT}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<boolProp name="HTTPSampler.image_parser">true</boolProp>
</ConfigTestElement>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Not logged in" enabled="true">
<stringProp name="TestPlan.comments">These pages are run while the user is not logged in.</stringProp>
</GenericController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Home page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: About page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/about</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as DBA" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">testAdmin</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Site Admin" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/siteAdmin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete authorship" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?pubUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; core:authorInAuthorship ?authorshipUri . ?authorshipUri core:linkedInformationResource ?pubUri .}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="-977445585">pubUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete grant role" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?grantUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; &lt;http://vivoweb.org/ontology/core#hasPrincipalInvestigatorRole&gt; ?grantRole . ?grantRole core:roleIn ?grantUri .} </stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="99198640">grantUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as SelfEditor" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">dk15</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>

View file

@ -0,0 +1,564 @@
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="WEBAPP_HOST" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_HOST</stringProp>
<stringProp name="Argument.value">${__property(webapp.host, , localhost)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_PORT" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_PORT</stringProp>
<stringProp name="Argument.value">${__property(webapp.port, , 8080)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="WEBAPP_NAME" elementType="Argument">
<stringProp name="Argument.name">WEBAPP_NAME</stringProp>
<stringProp name="Argument.value">${__property(webapp.name, , vivo)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="PERSON_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">PERSON_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.person.uris, , PersonUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="INFO_RESOURCE_URI_FILE" elementType="Argument">
<stringProp name="Argument.name">INFO_RESOURCE_URI_FILE</stringProp>
<stringProp name="Argument.value">${__property(file.infoResource.uris, , InfoResourceUris.csv)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ITERATIONS" elementType="Argument">
<stringProp name="Argument.name">ITERATIONS</stringProp>
<stringProp name="Argument.value">${__property(iterations, , 10)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DEFAULT_NAMESPACE" elementType="Argument">
<stringProp name="Argument.name">DEFAULT_NAMESPACE</stringProp>
<stringProp name="Argument.value">${__property(default.namespace, , http://vivo.mydomain.edu/individual/)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="THREADS" elementType="Argument">
<stringProp name="Argument.name">THREADS</stringProp>
<stringProp name="Argument.value">${__property(threads, , 1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Main Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">${ITERATIONS}</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${THREADS}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${THREADS}</stringProp>
<longProp name="ThreadGroup.start_time">1294759350000</longProp>
<longProp name="ThreadGroup.end_time">1294759350000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<stringProp name="CookieManager.policy">rfc2109</stringProp>
</CookieManager>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${WEBAPP_HOST}</stringProp>
<stringProp name="HTTPSampler.port">${WEBAPP_PORT}</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<boolProp name="HTTPSampler.image_parser">true</boolProp>
</ConfigTestElement>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Not logged in" enabled="true">
<stringProp name="TestPlan.comments">These pages are run while the user is not logged in.</stringProp>
</GenericController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Home page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: About page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/about</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Nobody: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as DBA" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">testAdmin</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Site Admin" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/siteAdmin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete authorship" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?pubUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; core:authorInAuthorship ?authorshipUri . ?authorshipUri core:linkedInformationResource ?pubUri .}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="-977445585">pubUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: Auto-complete grant role" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="query" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; SELECT ?grantUri WHERE {&lt;${DEFAULT_NAMESPACE}${PERSON_URI}&gt; &lt;http://vivoweb.org/ontology/core#hasPrincipalInvestigatorRole&gt; ?grantRole . ?grantRole core:roleIn ?grantUri .} </stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">query</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/ajax/sparqlQuery</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="99198640">grantUri</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="DBA: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Logged in as SelfEditor" enabled="true"/>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Login, release 1.2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">dk15</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">username</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">Password</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/programLogin</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: Person profile page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${PERSON_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Person URIs from CSV" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="filename">${PERSON_URI_FILE}</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">PERSON_URI</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: InfoResource Profile Page" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/display/${INFO_RESOURCE_URI}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="InfoResource URIs from CSV" enabled="true">
<stringProp name="filename">${INFO_RESOURCE_URI_FILE}</stringProp>
<stringProp name="fileEncoding">utf8</stringProp>
<stringProp name="variableNames">INFO_RESOURCE_URI</stringProp>
<stringProp name="delimiter"></stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
</hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="SelfEditor: logout" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${WEBAPP_NAME}/logout</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
Contains a standard Tomcat distribution. Currently we have no provision
for testing on multiple versions of Tomcat.

View file

@ -0,0 +1,11 @@
Contains data that is specific to both a particular site and a particular distribution of VIVO,
so subdirectories might be named "scripps1.3" or "indiana1.4"
Each subdirectory contains a VIVO home directory called "data", and the file storage
area should be populated with appropriate images so the tests won't throw errors if the
data-model is expecting an image file.
Of course, the Solr index for each "version" will be stored in its home directory.
The version directory is also a place to capture the tomcat logs, so we can inspect them later.

View file

@ -0,0 +1,30 @@
#
# These properties tell how to set up Selenium to run a test suite.
#
website_url = http://localhost:8080/vivo
suite_parent_directories = suites
output_directory = ../../.build/acceptance-tests-output
user_extensions_path = /vitro/utilities/testrunner/selenium/user-extensions.js
firefox_profile_template_path =
suite_timeout_limit = 240
selenium_jar_path = /vitro/utilities/testrunner/selenium/selenium-server.jar
#
# These properties are needed to cleanse the data model between test suites.
#
mysql_username = vivoUser
mysql_password = vivoPass
mysql_dumpfile = test-model/testmodeldump.sql
mysql_db_name = vivo
vivo_webapp_directory = /usr/local/tomcat//webapps/vivo
upload_directory = /usr/local/vivo/data/uploads
tomcat_check_ready_command = /usr/local/vivo/commands/check_tomcat.sh
tomcat_stop_command = /usr/local/vivo/commands/stop_tomcat.sh
tomcat_start_command = /usr/local/vivo/commands/start_tomcat.sh
#
# These properties control the output formatting of the tests.
#
ignored_tests_file = suites/ignored_tests.txt

View file

@ -0,0 +1,901 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AdminBookmarkedPage</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AdminBookmarkedPage</td></tr>
</thead><tbody>
<!--Test People rowse-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<!--Don't need to login-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<!--Verify Home page Research option-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Books</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>1&nbsp;&nbsp;Books </td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Grants</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>3&nbsp;&nbsp;Grants</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=View all ...</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Award or Honor (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Blog Posting (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept (7)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Database (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Grant (3)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human Study (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Patent (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Proceedings (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Webpage (1)</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Verify Home page People option-->
<tr>
<td>verifyTextPresent</td>
<td>No faculty members found.</td>
<td></td>
</tr>
<!--Verify Home page Departments option-->
<tr>
<td>verifyTextPresent</td>
<td>No academic departments found.</td>
<td></td>
</tr>
<!--Verify People menu option -->
<tr>
<td>clickAndWait</td>
<td>link=People</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person, Polly</td>
<td></td>
</tr>
<!--Verify Organizations menu option -->
<tr>
<td>clickAndWait</td>
<td>link=Organizations</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=College (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Company (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Consortium (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Laboratory (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Library (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization (7)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=University (1)</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='college']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of America</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Company (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='consortium']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='laboratory']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='library']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate History Library</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='organization']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate History Library</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='organization']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=P</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate History Library</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=University (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<!--Verify Research menu option -->
<tr>
<td>clickAndWait</td>
<td>link=Research</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Award or Honor (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Blog Posting (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept (7)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Database (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Grant (3)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human Study (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Patent (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Proceedings (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Webpage (1)</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Article (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Happenings</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Award or Honor (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Best Primate College</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Student of the Year</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='book']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=PHC Proceedings</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='concept']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Animal Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Ape Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Best Primate College</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Diet</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Student of the Year</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='concept']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=P</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Diet</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Student of the Year</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='database']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Info</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='grant']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Habitat Research Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Survival Planning Grant</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Human Study (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human and Ape Brain Comparison</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Patent (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=USA222333444555</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='proceedings']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=PHC Proceedings</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='webpage']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=exact:http://primatehealthintro.cornell.edu</td>
<td></td>
</tr>
<!--Verify Events menu option -->
<tr>
<td>clickAndWait</td>
<td>link=Events</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Event (7)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Invited Talk (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Performance (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Presentation (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Seminar Series (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Workshop (1)</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='conference']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='event']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primates</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=New Primate Students</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates in the Wild</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[@id='invitedTalk']/a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Performance (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates in the Wild</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Presentation (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Seminar Series (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Talks</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Workshop (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=New Primate Students</td>
<td></td>
</tr>
<!--Go back to Home-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,448 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CheckIndexView</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CheckIndexView</td></tr>
</thead><tbody>
<!--Check index for browse links for roles-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--No need to login-->
<!--Navigate to index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify headings appear-->
<tr>
<td>verifyTextPresent</td>
<td>people</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>activities</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>courses</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>equipment</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>locations</td>
<td></td>
</tr>
<!--Verify counts are correct-->
<tr>
<td>verifyTextPresent</td>
<td>Person (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Project (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research Project (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Service (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Transport Service (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Course (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Event (7)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Invited Talk (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Performance (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Presentation (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Seminar Series (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Workshop (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>College (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Company (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Consortium (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Laboratory (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Library (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (7)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>University (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Equipment (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Award or Honor (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Blog Posting (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (7)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Database (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant (3)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Human Study (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Patent (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Proceedings (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Webpage (1)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Building (2)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Continent (7)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Facility (5)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Room (1)</td>
<td></td>
</tr>
<!--Verify links are correct-->
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Project</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Research Project</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Service</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Transport Service</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Course</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Event</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Invited Talk</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Performance</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Presentation</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Seminar Series</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Workshop</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=College</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Company</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Consortium</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Library</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=University</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Equipment</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Award or Honor</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Blog Posting</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Database</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human Study</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Patent</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Proceedings</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Webpage</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Facility</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Room</td>
<td></td>
</tr>
<!--Go back to home page-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,820 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateActivity</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateActivity</td></tr>
</thead><tbody>
<!--Validate adding Activity-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Grant (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Grant</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Grant (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Grant</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Primate Elderly Care</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test overview entry (image and webpage have been tested)-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[6]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-relates &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=organization</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=organization</td>
<td>primate colleges of the wor</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=organization</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=input.submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-assignedBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Primate Research Laboratory (Laboratory)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='abstract']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: abstract</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Purpose of grant is to determine the appropriate environment, physical activity, and diet for primates as they age.')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='grantSubcontractedThrough']/a</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Primate Colleges of the World (Consortium)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='totalAwardAmount']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: total award amount</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('$1,234,567')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='grantDirectCosts']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('$999,999')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='sponsorAwardId']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('1234-5678')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test geographic focus-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='geographicFocus']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>Afri</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test time entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='dateTimeInterval']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2010</td>
</tr>
<tr>
<td>select</td>
<td>startField-month</td>
<td>label=9</td>
</tr>
<tr>
<td>select</td>
<td>startField-day</td>
<td>label=1</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2012</td>
</tr>
<tr>
<td>select</td>
<td>endField-month</td>
<td>label=8</td>
</tr>
<tr>
<td>select</td>
<td>endField-day</td>
<td>label=31</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test identity entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='localAwardId']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: local award ID</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('P999-1234')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test other entry-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-fundingVehicleFor &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>primate health chec</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Manage Concepts</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td>Elderly Care</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Test remaining fields (added for 1.6)-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000051 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Habitat Research Grant</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000050 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Survival Planning Grant</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-supportedInformationResource</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Info (Database)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>verifyTextPresent</td>
<td>Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Purpose of grant is to determine the appropriate environment, physical activity, and diet for primates as they age.</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>September 1, 2010 - August 31, 2012</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Africa</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Habitat Research Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Survival Planning Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>$1,234,567</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>$999,999</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>xpath=(//a[contains(text(),'Africa')])[2]</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>1234-5678</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>P999-1234</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Info</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,868 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateCourse</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateCourse</td></tr>
</thead><tbody>
<!--Validate adding Course-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Course (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Course</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Course (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Course</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Introduction to Primate Health</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<!--Test overview tab entry (image and webpage have been tested)-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='description']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: description</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Learn the basics about the general health of primates.')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-offeredBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='prerequisiteFor']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='geographicFocus']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>Afri</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='dateTimeInterval']/a</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create date time value for Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2007</td>
</tr>
<tr>
<td>select</td>
<td>startField-month</td>
<td>label=9</td>
</tr>
<tr>
<td>select</td>
<td>startField-day</td>
<td>label=1</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2007</td>
</tr>
<tr>
<td>select</td>
<td>endField-month</td>
<td>label=12</td>
</tr>
<tr>
<td>select</td>
<td>endField-day</td>
<td>label=15</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000051 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Primate Health Check (Event)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td>Animal Health</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000050 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Health and Fitness (Invited Talk)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[7]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=typeOfNew</td>
<td>label=Seminar Series (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Primate Health Talks</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<!--Test publication tab entry-->
<tr>
<td>click</td>
<td>css=li.nonSelectedGroupTab.clickable</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='presents']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>typeOfNew</td>
<td>label=Webpage (bibo)</td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create &quot;related documents&quot; entry for Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>http://primatehealthintro.cornell.edu</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0002234 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Happenings (Blog Posting)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<!--Test contact tab entry-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[6]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='contactInformation']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: contact information</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('ME Tarzan at metarzan@primates.edu or 555-555-5553')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//h3[@id='RO_0001025']/a)[2]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>lib</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0001025 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Primate Memorial Building</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<!--Test other tab entry-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='courseCredits']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('9')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-hasPrerequisite &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Introduction to Primates</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Course</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Learn the basics about the general health of primates.</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of America</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>September 1, 2007 - December 15, 2007</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Talks</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Animal Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Africa</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Happenings</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=http://primatehealthintro.cornell.edu</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>ME Tarzan at metarzan@primates.edu or 555-555-5553</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Liberia</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primates</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>9</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,453 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateEquipment</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateEquipment</td></tr>
</thead><tbody>
<!--Validate adding Equipment-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Equipment (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Equipment</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Equipment (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Equipment</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Primate Feeder</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Feeder</td>
<td></td>
</tr>
<!--Test overview entry (image and webpage have been tested)-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='equipmentFor']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Primate Research Laboratory (Laboratory)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Feeder</td>
<td></td>
</tr>
<!--Test location entry-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0001025 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>typeOfNew</td>
<td>label=Facility (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create &quot;housed in facility&quot; entry for Primate Feeder</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Primate Research Lab Room 123</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Feeder</td>
<td></td>
</tr>
<!--Test other entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: keywords</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Animal Diet')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Lab Room 123</td>
<td></td>
</tr>
<!--Test remaining fields (added for 1.6)-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[3]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Heart Health (Service)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[4]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate University of America (University)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[5]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Health Check (Event)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000050 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>United State</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Lab Room 123</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Feeder</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Heart Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=United States of America</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,826 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateEvent</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateEvent</td></tr>
</thead><tbody>
<!--Validate adding Event-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Conference (bibo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Conference (bibo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Primate Health Conference</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test overview entry (image and webpage have been tested)-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='description']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: description</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('First annual conference for those interested in the general health of primates.')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasProceedings']/a/img</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>PHC Proceedings</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Conference</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='contactInformation']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Add new entry for: contact information</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('info@primateconf.org')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test research entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='geographicFocus']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>Kenya</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test location entry-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//h3[@id='RO_0001025']/a)[2]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Geographic Location Name</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=object</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>Cong</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=object</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0001025 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=typeOfNew</td>
<td>label=Facility (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>State Fair Park</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test time entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='dateTimeInterval']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2011</td>
</tr>
<tr>
<td>select</td>
<td>startField-month</td>
<td>label=1</td>
</tr>
<tr>
<td>select</td>
<td>startField-day</td>
<td>label=5</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2011</td>
</tr>
<tr>
<td>select</td>
<td>endField-month</td>
<td>label=1</td>
</tr>
<tr>
<td>select</td>
<td>endField-day</td>
<td>label=9</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test related documents entry-->
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='presents']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test other entry-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000051 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Primate Health Check (Event)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-hasSubjectArea &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>Anim</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='abbreviation']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('PrimHConf')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Test remaining fields (added for 1.6)-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000050 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Health and Fitness (Invited Talk)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[6]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0002234 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Happenings (Blog Posting)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>verifyTextPresent</td>
<td>Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>First annual conference for those interested in the general health of primates.</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>PrimHConf</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>January 5, 2011 - January 9, 2011</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Talks</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Animal Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=PHC Proceedings</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Kenya</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Happenings</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=http://primatehealthintro.cornell.edu</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>info@primateconf.org</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=State Fair Park</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Congo</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateLibrarian</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateLibrarian</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>10000000</td>
<td></td>
</tr>
<!--Create Librarian person-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Navigate to add new individual page-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Librarian (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Librarian</td>
<td></td>
</tr>
<!--Create a librarian individual-->
<tr>
<td>type</td>
<td>firstName</td>
<td>Lily</td>
</tr>
<tr>
<td>type</td>
<td>lastName</td>
<td>Librarian</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Librarian, Lily</td>
<td></td>
</tr>
<!--Make individual an Assistant Librarian-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-preferredTitle &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Assistant Librarian')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Librarian, Lily</td>
<td></td>
</tr>
<!--Verify that individual was added sucessfully-->
<tr>
<td>verifyTextPresent</td>
<td>Librarian, Lily</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Assistant Librarian</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,402 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateLocation</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateLocation</td></tr>
</thead><tbody>
<!--Validate adding Location-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Building (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Building</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Building (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Building</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Jane Memorial Building</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<!--Test location entry-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000051 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>There are no entries in the system from which to select. </td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create &quot;rooms&quot; entry for Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Lab Admin Office</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=a.add-BFO_0000050 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=typeOfNew</td>
<td>label=Geographic Location (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Primate Quad</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<!--Test other entry-->
<tr>
<td>clickAndWait</td>
<td>css=a.add-RO_0001015 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<!--Test remaining fields (added for 1.6)-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[3]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Heart Health (Service)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//h3[@id='RO_0001015']/a)[3]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate University of America (University)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[5]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=objectVar</td>
<td>label=Primate Health Check (Event)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Jane Memorial Building</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>verifyElementPresent</td>
<td>link=Portable Primate Habitat</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Heart Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Lab Admin Office</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Quad</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,321 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CreateTopic</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CreateTopic</td></tr>
</thead><tbody>
<!--Validate adding Topic-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Data Input</td>
<td></td>
</tr>
<!--Select to add then cancel right away-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Concept (skos)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Concept</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add then enter empty field-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Concept (skos)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create a new Concept</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Please enter a value in the Name field.</td>
<td></td>
</tr>
<!--Now enter something in the field-->
<tr>
<td>type</td>
<td>label</td>
<td>Primate Health</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health</td>
<td></td>
</tr>
<!--Test overview entry (image and webpage have been tested)-->
<tr>
<td>click</td>
<td>css=li.nonSelectedGroupTab.clickable</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='broader']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=Animal Health</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health</td>
<td></td>
</tr>
<!--Test other entry-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='narrower']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create &quot;narrower concept&quot; entry for Primate Health</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Primate Diet</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='related']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>If you don't find the appropriate entry on the selection list above:</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=offerCreate</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create &quot;related concept&quot; entry for Primate Health</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=label</td>
<td>Ape Health</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Health</td>
<td></td>
</tr>
<!--Verify everything entered is displaying properly-->
<tr>
<td>verifyElementPresent</td>
<td>link=Animal Health</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Diet</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Ape Health</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://localhost:8080/vivo" />
<title>RebuildSearchIndex</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">RebuildSearchIndex</td></tr>
</thead><tbody>
<!--Rebuild Search Index-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000000000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>id=loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>name=loginForm</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Rebuild search index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Rebuild Search Index</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>name=rebuild</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Rebuild Search Index</td>
<td></td>
</tr>
<tr>
<td>waitForTextPresent</td>
<td>Reset the search index and re-populate it.</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,920 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>EditSiteInfo</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">EditSiteInfo</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>10000000</td>
<td></td>
</tr>
<!--Test Menu Management-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged out-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Menu Management-->
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<!--Add Activities menu-->
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=pageName</td>
<td>Activities</td>
</tr>
<tr>
<td>type</td>
<td>name=prettyUrl</td>
<td>/activities</td>
</tr>
<tr>
<td>select</td>
<td>id=typeSelect</td>
<td>label=Browse Class Group</td>
</tr>
<tr>
<td>select</td>
<td>id=selectClassGroup</td>
<td>label=activities</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;http://vivoweb.org/ontology#vitroClassGroupactivities&quot;]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=doneWithContent</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=menuCheckbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=pageSave</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Home</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>People</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Activities</td>
<td></td>
</tr>
<!--Add Courses menu-->
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=pageName</td>
<td>Courses</td>
</tr>
<tr>
<td>type</td>
<td>name=prettyUrl</td>
<td>/courses</td>
</tr>
<tr>
<td>select</td>
<td>id=typeSelect</td>
<td>label=Browse Class Group</td>
</tr>
<tr>
<td>select</td>
<td>id=selectClassGroup</td>
<td>label=courses</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;http://vivoweb.org/ontology#vitroClassGroupactivities&quot;]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=doneWithContent</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=menuCheckbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=pageSave</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Home</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>People</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Activities</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Courses</td>
<td></td>
</tr>
<!--Add Equipment menu-->
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=pageName</td>
<td>Equipment</td>
</tr>
<tr>
<td>type</td>
<td>name=prettyUrl</td>
<td>/equipment</td>
</tr>
<tr>
<td>select</td>
<td>id=typeSelect</td>
<td>label=Browse Class Group</td>
</tr>
<tr>
<td>select</td>
<td>id=selectClassGroup</td>
<td>label=equipment</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;http://vivoweb.org/ontology#vitroClassGroupactivities&quot;]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=doneWithContent</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=menuCheckbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=pageSave</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Home</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>People</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Activities</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Home</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>People</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Activities</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Courses</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Equipment</td>
<td></td>
</tr>
<!--Add Locations menu-->
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=pageName</td>
<td>Locations</td>
</tr>
<tr>
<td>type</td>
<td>name=prettyUrl</td>
<td>/locations</td>
</tr>
<tr>
<td>select</td>
<td>id=typeSelect</td>
<td>label=Browse Class Group</td>
</tr>
<tr>
<td>select</td>
<td>id=selectClassGroup</td>
<td>label=locations</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;http://vivoweb.org/ontology#vitroClassGroupactivities&quot;]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=doneWithContent</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=menuCheckbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=pageSave</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Home</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>People</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Activities</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Locations</td>
<td></td>
</tr>
<!--Check Activities menu tab-->
<tr>
<td>clickAndWait</td>
<td>link=Activities</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Activities</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Project (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human and Ape Brain Comparison</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Research Project (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human and Ape Brain Comparison</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Service (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Gorilla Moving Company</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Heart Health</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Transport Service (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Gorilla Moving Company</td>
<td></td>
</tr>
<!--Check Courses menu tab-->
<tr>
<td>clickAndWait</td>
<td>link=Courses</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Courses</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Course (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Course</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primates</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primate Health</td>
<td></td>
</tr>
<!--Check Equipment menu tab-->
<tr>
<td>clickAndWait</td>
<td>link=Equipment</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Equipment</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Equipment (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Equipment</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Portable Primate Habitat</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Feeder</td>
<td></td>
</tr>
<!--Check Locations menu-->
<tr>
<td>clickAndWait</td>
<td>link=Locations</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Locations</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Building (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Memorial Building</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Facility (5)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Lab Admin Office</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=State Fair Park</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Room (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Lab Admin Office</td>
<td></td>
</tr>
<!--Delete new menus-->
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='delete this page'])[2]</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you sure you wish to delete this page:&nbsp;&nbsp;Activities?</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//img[@alt='delete this page'])[4]</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you sure you wish to delete this page:&nbsp;&nbsp;Courses?</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//img[@alt='delete this page'])[6]</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you sure you wish to delete this page:&nbsp;&nbsp;Equipment?</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//img[@alt='delete this page'])[7]</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you sure you wish to delete this page:&nbsp;&nbsp;Locations?</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Page management</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Pages</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Log in</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,539 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>VerifyAllThingsSearchable</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">VerifyAllThingsSearchable</td></tr>
</thead><tbody>
<!--Verify all roles are searchable-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<!--No need to log in-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Verify search results for VIVO-->
<tr>
<td>type</td>
<td>querytext</td>
<td>primates</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>primates - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=people</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=activities</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=courses</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=organizations</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=equipment</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=locations</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates in the Wild</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primates in the Wild Performance</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primates</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Introduction to Primates Course</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primates-r-us Company</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Happenings</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Happenings Blog Posting</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Info</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Info Database</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Health Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Quad</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Quad Geographic Location</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Feeder</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Feeder Equipment</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Diet</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Diet Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of America</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate College of America College</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Talks</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Health Talks Seminar Series</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Research Laboratory Laboratory</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Portable Primate Habitat</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Portable Primate Habitat Equipment</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Elderly Care Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Introduction to Primate Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Introduction to Primate Health Course</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health and Fitness</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Health and Fitness Invited Talk</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate University of America University</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Colleges of the World Consortium</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Check</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Health Check Event</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Health Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Health Conference Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Heart Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Heart Health Service</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=New Primate Students</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>New Primate Students Workshop</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Habitat Research Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Habitat Research Grant Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Memorial Building Building</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Student of the Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Student of the Year Award or Honor</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=2</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>primates - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Best Primate College</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Best Primate College Award or Honor</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate History Library</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate History Library Library</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Survival Planning Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Survival Planning Grant Grant</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate College of New York College</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Primate Research Lab Room 123</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Primate Research Lab Room 123 Facility</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Animal Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Animal Health Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Ape Health</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Ape Health Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Elderly Care</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Elderly Care Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Jane Memorial Building</td>
<td></td>
</tr>
<tr>
<td>verifyText</td>
<td>//div[@id='wrapper-content']/div/ul/li[9]/span</td>
<td>Building</td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=exact:http://primatehealthintro.cornell.edu</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>http://primatehealthintro.cornell.edu Webpage</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Human and Ape Brain Comparison</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Human and Ape Brain Comparison Human Study</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person, Polly</td>
<td></td>
</tr>
<tr>
<td>verifyText</td>
<td>//div[@id='wrapper-content']/div/ul/li[12]/span</td>
<td>Person</td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Gorilla Moving Company</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Gorilla Moving Company Transport Service</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=PHC Proceedings</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>PHC Proceedings Proceedings</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=State Fair Park</td>
<td></td>
</tr>
<tr>
<td>verifyText</td>
<td>//div[@id='wrapper-content']/div/ul/li[15]/span</td>
<td>Facility</td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=USA222333444555</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>USA222333444555 Patent</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Africa</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Africa Continent Transnational Region</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Kenya</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Kenya Country</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<title>Test Suite</title>
</head>
<body>
<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"><tbody>
<tr><td><b>Test Suite</b></td></tr>
<tr><td><a href="RebuildSearchIndex.html">RebuildSearchIndex</a></td></tr>
<tr><td><a href="CreateOrganization.html">CreateOrganization</a></td></tr>
<tr><td><a href="CreateCourse.html">CreateCourse</a></td></tr>
<tr><td><a href="CreateActivity.html">CreateActivity</a></td></tr>
<tr><td><a href="CreateEvent.html">CreateEvent</a></td></tr>
<tr><td><a href="CreateTopic.html">CreateTopic</a></td></tr>
<tr><td><a href="CreateEquipment.html">CreateEquipment</a></td></tr>
<tr><td><a href="CreateLocation.html">CreateLocation</a></td></tr>
<tr><td><a href="RebuildSearchIndex.html">RebuildSearchIndex</a></td></tr>
<tr><td><a href="VerifyAllThingsSearchable.html">VerifyAllThingsSearchable</a></td></tr>
<tr><td><a href="CheckPublicView.html">CheckPublicView</a></td></tr>
<tr><td><a href="CheckIndexView.html">CheckIndexView</a></td></tr>
<tr><td><a href="CheckBrowseOptions.html">CheckBrowseOptions</a></td></tr>
<tr><td><a href="TestMenuManagement.html">TestMenuManagement</a></td></tr>
<tr><td><a href="DeleteIndexStuff.html">DeleteIndexStuff</a></td></tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,786 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddArticle</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddArticle</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Add Article-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify that no articles currently exist-->
<tr>
<td>verifyTextNotPresent</td>
<td>Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Academic Article</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Select to add a Publication-->
<tr>
<td>click</td>
<td>css=li.nonSelectedGroupTab.clickable</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=#relatedBy-Authorship &gt; a.add-relatedBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create publication entry for Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publication Type</td>
<td></td>
</tr>
<!--Select to add an article-->
<tr>
<td>select</td>
<td>typeSelector</td>
<td>label=Academic Article</td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Title</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=title</td>
<td>Too Much Nintendo</td>
</tr>
<tr>
<td>type</td>
<td>id=collection</td>
<td>Child Development</td>
</tr>
<tr>
<td>type</td>
<td>id=volume</td>
<td>29</td>
</tr>
<tr>
<td>type</td>
<td>id=issue</td>
<td>Supplement</td>
</tr>
<tr>
<td>type</td>
<td>id=startPage</td>
<td>298</td>
</tr>
<tr>
<td>type</td>
<td>id=endPage</td>
<td>344</td>
</tr>
<tr>
<td>type</td>
<td>id=dateTime-year</td>
<td>2010</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[4]</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>academic article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<!--Go back to article-->
<tr>
<td>clickAndWait</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<!--Add details for Article-->
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='pmid']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('ABC111222333')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='eanucc13']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('DEF12121212')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='nihmsid']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('NIH9898989898')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='pmcid']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('PMID767676')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>Child</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Children')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Games')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='doi']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('987654321.1234567890')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<!--Naviage back to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify Article links now appear-->
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publisher (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Academic Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<!--Verify Article shows up for Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[4]</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>academic article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<!--Verify article details-->
<tr>
<td>clickAndWait</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[12]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>css=a[title=&quot;name&quot;]</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>DEF12121212</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH9898989898</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>PMID767676</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>987654321.1234567890</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>ABC111222333</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>298</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>344</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>29</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Supplement</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,661 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddBook</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddBook</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Add Book-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify that no books currently exist-->
<tr>
<td>verifyTextNotPresent</td>
<td>Book</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Select to add a Publication-->
<tr>
<td>click</td>
<td>css=li.nonSelectedGroupTab.clickable</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=#relatedBy-Authorship &gt; a.add-relatedBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create publication entry for Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publication Type</td>
<td></td>
</tr>
<!--Select to add a book-->
<tr>
<td>select</td>
<td>typeSelector</td>
<td>label=Book</td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Title</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=title</td>
<td>Nintendo: Good or Bad for Kids?</td>
</tr>
<tr>
<td>type</td>
<td>id=publisher</td>
<td>Putnam</td>
</tr>
<tr>
<td>type</td>
<td>id=locale</td>
<td>New York</td>
</tr>
<tr>
<td>type</td>
<td>id=dateTime-year</td>
<td>2010</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<!--Go back to the book-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<!--Add details for Book-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='status']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>objectVar</td>
<td>label=in press</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td>Child Development</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Children')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Games')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='isbn10']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('5555555555')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='isbn13']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('7777777777777')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='numPages']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('258')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<!--Naviage back to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify Book link now appears-->
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publisher (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<!--Verify Book shows up for Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<!--Verify book details-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[12]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>5555555555</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>7777777777777</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>258</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Putnam</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>New York</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=in press</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,565 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddChapter</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddChapter</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Add Book Chapter-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify that no books currently exist-->
<tr>
<td>verifyTextNotPresent</td>
<td>Chapter</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Select to add a Publication-->
<tr>
<td>clickAndWait</td>
<td>css=#relatedBy-Authorship &gt; a.add-relatedBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create publication entry for Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publication Type</td>
<td></td>
</tr>
<!--Select to add a book chapter-->
<tr>
<td>select</td>
<td>typeSelector</td>
<td>label=Chapter</td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Title</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=title</td>
<td>Nintendo O.K. for Kids</td>
</tr>
<tr>
<td>type</td>
<td>id=book</td>
<td>Kids in the 21st Century</td>
</tr>
<tr>
<td>type</td>
<td>id=editor</td>
<td>Sony</td>
</tr>
<tr>
<td>type</td>
<td>id=firstName</td>
<td>Sunny</td>
</tr>
<tr>
<td>type</td>
<td>id=publisher</td>
<td>Marcel Dekker</td>
</tr>
<tr>
<td>type</td>
<td>id=locale</td>
<td>New York</td>
</tr>
<tr>
<td>type</td>
<td>id=startPage</td>
<td>765</td>
</tr>
<tr>
<td>type</td>
<td>id=endPage</td>
<td>876</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<!--Go back to Chapter-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<!--Add details for Chapter-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='chapter']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('13')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>Child</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Children')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Games')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<!--Naviage back to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify Chapter link now appears-->
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publisher (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Academic Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Chapter (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<!--Verify Chapter shows up for Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,560 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddConference</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddConference</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Add Conference Paper-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify that no conference papers currently exist-->
<tr>
<td>verifyTextNotPresent</td>
<td>Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Conference Paper</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Select to add a Publication-->
<tr>
<td>clickAndWait</td>
<td>css=#relatedBy-Authorship &gt; a.add-relatedBy &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create publication entry for Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publication Type</td>
<td></td>
</tr>
<!--Select to add a conference paper-->
<tr>
<td>select</td>
<td>typeSelector</td>
<td>label=Conference Paper</td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Title</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=title</td>
<td>Nintendo Case Studies</td>
</tr>
<tr>
<td>type</td>
<td>id=conference</td>
<td>Games and Child Development</td>
</tr>
<tr>
<td>type</td>
<td>id=dateTime-year</td>
<td>2010</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>conference paper</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<!--Go back to conference-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<!--Add details for Conference Paper-->
<tr>
<td>clickAndWait</td>
<td>//h3[@id='hasSubjectArea']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=showAddFormButton</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Select or create a VIVO-defined concept.</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=relatedIndLabel</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>Child</td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>sendKeys</td>
<td>id=relatedIndLabel</td>
<td>${KEY_DOWN}</td>
</tr>
<tr>
<td>click</td>
<td>id=ui-active-menuitem</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Children')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//h3[@id='freetextKeyword']/a/img</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>tinymce</td>
<td></td>
</tr>
<tr>
<td>runScript</td>
<td>tinyMCE.activeEditor.setContent('Games')</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<!--Naviage back to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify Book link now appears-->
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Event (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Event</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publisher (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Academic Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Article (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Chapter (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference Paper (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Journal (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Journal</td>
<td></td>
</tr>
<!--Verify Conference Paper shows up for Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>conference paper</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddTestFaculty</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddTestFaculty</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>10000000</td>
<td></td>
</tr>
<!--Add a faculty member for test purposes-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add an Individual of Faculty-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Faculty Member (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<!--Enter faculty member name and title-->
<tr>
<td>type</td>
<td>firstName</td>
<td>Frank</td>
</tr>
<tr>
<td>type</td>
<td>lastName</td>
<td>Furter</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Edit Frank Furter to make him an Associate Professor-->
<tr>
<td>selectWindow</td>
<td>null</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=header &gt; #ARG_2000028 &gt; a.add-ARG_2000028 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=preferredTitle</td>
<td>Associate Professor</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify new faculty member added-->
<tr>
<td>verifyTextPresent</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Associate Professor</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddTestFacultyBack</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddTestFacultyBack</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Add a faculty member for test purposes-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Select to add an Individual of Faculty-->
<tr>
<td>select</td>
<td>VClassURI</td>
<td>label=Faculty Member (vivo)</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Add individual of this class']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<!--Enter faculty member name and title-->
<tr>
<td>type</td>
<td>firstName</td>
<td>Frank</td>
</tr>
<tr>
<td>type</td>
<td>lastName</td>
<td>Furter</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Edit Frank Furter to make him an Associate Professor-->
<tr>
<td>clickAndWait</td>
<td>css=header &gt; #ARG_2000028 &gt; a.add-ARG_2000028 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=preferredTitle</td>
<td>Associate Professor</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify new faculty member added-->
<tr>
<td>verifyTextPresent</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Associate Professor</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CheckIndexView</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CheckIndexView</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Check index entries-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in-->
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Check index-->
<tr>
<td>verifyTextPresent</td>
<td>people</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Event (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Event</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Organization (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Publisher (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Academic Article (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Article (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Book (2)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Chapter (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Concept (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Concept</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference Paper (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Journal (1)</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Journal</td>
<td></td>
</tr>
<!--All done-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,612 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>CheckPublicView</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">CheckPublicView</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Check public view of publications-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in-->
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify 4 publications show up-->
<tr>
<td>verifyTextPresent</td>
<td>academic article</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>book</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>chapter</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>conference paper</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<!--Now verify Chapter details-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[8]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Sony, Sunny</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Marcel Dekker</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>13</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Kids in the 21st Century</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>765</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>876</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>New York</td>
<td></td>
</tr>
<!--Now verify Conference Paper details-->
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[6]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<!--Now verify Book details-->
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[10]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=in press</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Putnam</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>5555555555</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>7777777777777</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>258</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>New York</td>
<td></td>
</tr>
<!--Now verify Article details-->
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[10]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Children</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>DEF12121212</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH9898989898</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>PMID767676</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>987654321.1234567890</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>ABC111222333</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>298</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>344</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>29</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Supplement</td>
<td></td>
</tr>
<!--Check front page informaton-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td> 1&nbsp;&nbsp;Academic Articles </td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td> 2&nbsp;&nbsp;Books</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td> 1&nbsp;&nbsp;Chapters </td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td> 1&nbsp;&nbsp;Conference Papers </td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=View all ...</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Research</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Academic Article (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Article (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Academic Article</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Book (2)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Kids in the 21st Century</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Chapter (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Concept (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Conference Paper (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Journal (1)</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<!--All done-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,314 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteArticle</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteArticle</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete Article-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must log in as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to the Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Article</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Article</td>
<td></td>
</tr>
<!--Select the item to delete-->
<tr>
<td>clickAndWait</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<!--Delete the item-->
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<!--Verify that there are no articles listed-->
<tr>
<td>verifyTextNotPresent</td>
<td>Article</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Academic Article</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteBook</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteBook</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete Book-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must log in as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to the Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Book</td>
<td></td>
</tr>
<!--Delete first book-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Delete second book-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Book</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Book</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Kids in the 21st Century</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Kids in the 21st Century</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Verify all books are gone-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<!--Verify that there are no articles listed-->
<tr>
<td>verifyTextNotPresent</td>
<td>Book</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteChapter</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteChapter</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete Chapter-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must log in as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to the Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Chapter</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Chapter</td>
<td></td>
</tr>
<!--Select the item to delete-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<!--Delete the item-->
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<!--Verify that there are no articles listed-->
<tr>
<td>verifyTextNotPresent</td>
<td>Chapter</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteConference</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteConference</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete Conference Paper-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must log in as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to the Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Conference Paper</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Conference Paper</td>
<td></td>
</tr>
<!--Select the item to delete-->
<tr>
<td>clickAndWait</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<!--Delete the item-->
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<!--Verify that there are no conference papers listed-->
<tr>
<td>verifyTextNotPresent</td>
<td>Conference Paper</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteIndexStuff</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteIndexStuff</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete everything left in the index-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify that everything else is still there-->
<tr>
<td>verifyTextPresent</td>
<td>people</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>events</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>research</td>
<td></td>
</tr>
<!--Delete other stuff-->
<tr>
<td>clickAndWait</td>
<td>link=Concept</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Concept</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Child Development</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Putnam</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Putnam</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Marcel Dekker</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Marcel Dekker</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Conference</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Conference</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Journal</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Journal</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Child Development</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<!--Verify that everything is gone-->
<tr>
<td>pause</td>
<td>50000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>events</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>organizations</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>research</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,357 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>DeleteTestFaculty</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">DeleteTestFaculty</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Delete test faculty members-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must log in as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Verify both people to be deleted are there-->
<tr>
<td>verifyTextPresent</td>
<td>people</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Person</td>
<td></td>
</tr>
<!--Navigate to first faculty member-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<!--Delete first faculty member-->
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Navigate to second faculty member-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Person</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Person</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Sony, Sunny</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Sony, Sunny</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<!--Delete second faculty member-->
<tr>
<td>clickAndWait</td>
<td>//input[@value=&quot;Edit This Individual&quot;]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<!--Verify both faculty members are gone-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>50000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>refreshAndWait</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>people</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Person</td>
<td></td>
</tr>
<!--Logout-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,339 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddArticle</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddArticle</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Change publications to display-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in already-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Index-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<!--Navigate to Frank Furter-->
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify publications exist-->
<tr>
<td>click</td>
<td>css=li.nonSelectedGroupTab.clickable</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<!--Select display none-->
<tr>
<td>clickAndWait</td>
<td>id=managePubLink</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Manage Publications for Frank Furter</td>
<td></td>
</tr>
<tr>
<td>selectWindow</td>
<td>null</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=input.itemCheckbox</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[2]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[3]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[4]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify publications are gone-->
<tr>
<td>verifyTextNotPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<!--Opt to display 2 publications-->
<tr>
<td>verifyTextPresent</td>
<td>manage publications</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=managePubLink</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo </td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids? </td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids </td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies </td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[4]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=input.itemCheckbox</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify only 2 publications are showing-->
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextNotPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<!--Now display them all again-->
<tr>
<td>verifyTextPresent</td>
<td>manage publications</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=managePubLink</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[2]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>xpath=(//input[@type='checkbox'])[3]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Return to Profile Page</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Furter, Frank</td>
<td></td>
</tr>
<!--Verify publications all display again-->
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo.&nbsp;&nbsp;Child Development.&nbsp;&nbsp;29:298-344. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids?.&nbsp;&nbsp;New York: Putnam. 2010</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids.&nbsp;&nbsp;Kids in the 21st Century. Ed. Sony, Sunny.&nbsp;&nbsp;New York: Marcel Dekker. 765-876.</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies.&nbsp;&nbsp;Games and Child Development. 2010</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://localhost:8080/vivo" />
<title>RebuildSearchIndex</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">RebuildSearchIndex</td></tr>
</thead><tbody>
<!--Rebuild Search Index-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000000000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>id=loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>name=loginForm</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Site Admin</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Rebuild search index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Rebuild Search Index</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>name=rebuild</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Rebuild Search Index</td>
<td></td>
</tr>
<tr>
<td>waitForTextPresent</td>
<td>Reset the search index and re-populate it.</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,474 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>SearchPublications</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">SearchPublications</td></tr>
</thead><tbody>
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<!--Search for publications-related items-->
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must not be logged in-->
<!--Search for NINTENDO-->
<tr>
<td>type</td>
<td>querytext</td>
<td>nintendo</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>nintendo - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=people</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=organizations</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids? Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Child Development Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games and Child Development Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Putnam Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Putnam</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Child Development Journal</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Marcel Dekker Publisher</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Marcel Dekker</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Kids in the 21st Century Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Kids in the 21st Century</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Furter, Frank Associate Professor</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Furter, Frank</td>
<td></td>
</tr>
<!--Search for CHILD DEVELOPMENT-->
<tr>
<td>type</td>
<td>querytext</td>
<td>child development</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>child development - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Child Development Journal</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Child Development Concept</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games and Child Development Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids? Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<!--Search for CHILDREN-->
<tr>
<td>type</td>
<td>querytext</td>
<td>children</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>children - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids? Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<!--Search for GAMES-->
<tr>
<td>type</td>
<td>querytext</td>
<td>games</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>games - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games and Child Development Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo: Good or Bad for Kids? Book</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo: Good or Bad for Kids?</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo O.K. for Kids Chapter</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo O.K. for Kids</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Too Much Nintendo Academic Article</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Too Much Nintendo</td>
<td></td>
</tr>
<!--Search for CONFERENCE-->
<tr>
<td>type</td>
<td>querytext</td>
<td>conference</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Search']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>conference - VIVO Search Results</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=events</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=research</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Games and Child Development Conference</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Games and Child Development</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Nintendo Case Studies Conference Paper</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=Nintendo Case Studies</td>
<td></td>
</tr>
<!--All done-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<title>Test Suite</title>
</head>
<body>
<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"><tbody>
<tr><td><b>Test Suite</b></td></tr>
<tr><td><a href="RebuildSearchIndex.html">RebuildSearchIndex</a></td></tr>
<tr><td><a href="AddTestFaculty.html">AddTestFaculty</a></td></tr>
<tr><td><a href="ValidateFields.html">ValidateFields</a></td></tr>
<tr><td><a href="DeleteValidationStuff.html">DeleteValidationStuff</a></td></tr>
<tr><td><a href="RebuildSearchIndex.html">RebuildSearchIndex</a></td></tr>
<tr><td><a href="AddTestFacultyBack.html">AddTestFacultyBack</a></td></tr>
<tr><td><a href="AddBook.html">AddBook</a></td></tr>
<tr><td><a href="AddArticle.html">AddArticle</a></td></tr>
<tr><td><a href="AddChapter.html">AddChapter</a></td></tr>
<tr><td><a href="AddConference.html">AddConference</a></td></tr>
<tr><td><a href="CheckPublicView.html">CheckPublicView</a></td></tr>
<tr><td><a href="CheckIndexView.html">CheckIndexView</a></td></tr>
<tr><td><a href="SearchPublications.html">SearchPublications</a></td></tr>
<tr><td><a href="PublicationDisplay.html">PublicationDisplay</a></td></tr>
<tr><td><a href="DeleteConference.html">DeleteConference</a></td></tr>
<tr><td><a href="DeleteChapter.html">DeleteChapter</a></td></tr>
<tr><td><a href="DeleteArticle.html">DeleteArticle</a></td></tr>
<tr><td><a href="DeleteBook.html">DeleteBook</a></td></tr>
<tr><td><a href="DeleteIndexStuff.html">DeleteIndexStuff</a></td></tr>
<tr><td><a href="DeleteTestFaculty.html">DeleteTestFaculty</a></td></tr>
</tbody></table>
</body>
</html>

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,646 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>AddFacultyMemberRoles1</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">AddFacultyMemberRoles1</td></tr>
</thead><tbody>
<!--Add grant roles for Jane Faculty--originally tested auto-complete but doesn't work well within Selenium-->
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>setTimeout</td>
<td>100000</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/vivo/</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
<!--Must be logged off to start-->
<tr>
<td>clickAndWait</td>
<td>link=Log in</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Log in to VIVO</td>
<td></td>
</tr>
<!--Must login as the site admin-->
<tr>
<td>type</td>
<td>loginName</td>
<td>testAdmin@cornell.edu</td>
</tr>
<tr>
<td>type</td>
<td>loginPassword</td>
<td>Password</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>loginForm</td>
<td></td>
</tr>
<!--Navigate to Jane Faculty-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Cancel out before adding Co-principal Investigator-->
<tr>
<td>click</td>
<td>//div[@id='wrapper-content']/ul/li[6]</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[22]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create co-principal investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Add good Co-principal Investigator role-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[22]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create co-principal investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=grant</td>
<td>NIH VIVO</td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2009</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2010</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Navigate back to Jane Faculty-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Verify Co-principal Investigator role is showing up-->
<tr>
<td>verifyElementPresent</td>
<td>link=NIH VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH VIVO 2009 - 2010</td>
<td></td>
</tr>
<!--Add second Co-principal Investigator role-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[22]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create co-principal investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=grant</td>
<td>VIVO Cornell Grant</td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2007</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2009</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Navigate back to Jane Faculty-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Verify both Co-principal Investigator roles are showing up-->
<tr>
<td>verifyElementPresent</td>
<td>link=VIVO Cornell Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>VIVO Cornell Grant 2007 - 2009</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=NIH VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH VIVO 2009 - 2010</td>
<td></td>
</tr>
<!--Cancel out before adding Investigator-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[23]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Cancel</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Enter good Investigator role-->
<tr>
<td>clickAndWait</td>
<td>xpath=(//img[@alt='add'])[23]</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=grant</td>
<td>VIVO Cornell Grant Too</td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2009</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td>2009</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Navigate back to Jane Faculty-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Verify Investigator role is showing up-->
<tr>
<td>verifyElementPresent</td>
<td>link=VIVO Cornell Grant Too</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>VIVO Cornell Grant Too 2009</td>
<td></td>
</tr>
<!--Add Principal Investigator role-->
<tr>
<td>clickAndWait</td>
<td>css=#researchGroup &gt; article.property &gt; #RO_0000053 &gt; a.add-RO_0000053 &gt; img.add-individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Edit</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Create principal investigator entry for Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Grant Name</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Years of Participation in Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Start Year</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>End Year</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=grant</td>
<td>NIH VIVO Too</td>
</tr>
<tr>
<td>type</td>
<td>startField-year</td>
<td>2010</td>
</tr>
<tr>
<td>type</td>
<td>endField-year</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Navigate back to Jane Faculty-->
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty Member</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty Member</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Faculty, Jane</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Faculty, Jane</td>
<td></td>
</tr>
<!--Verify Principal Investigator role is showing up-->
<tr>
<td>verifyElementPresent</td>
<td>link=NIH VIVO Too</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH VIVO Too 2010 -</td>
<td></td>
</tr>
<!--Verify that all grant roles are still there-->
<tr>
<td>verifyElementPresent</td>
<td>link=NIH VIVO</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH VIVO 2009 - 2010</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=VIVO Cornell Grant</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>VIVO Cornell Grant 2007 - 2009</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=VIVO Cornell Grant Too</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>VIVO Cornell Grant Too 2009</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>link=NIH VIVO Too</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>NIH VIVO Too 2010 -</td>
<td></td>
</tr>
<!--Log out-->
<tr>
<td>clickAndWait</td>
<td>link=Home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Log out</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more