summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2011-03-16 21:54:38 -0400
committerEndi S. Dewata <edewata@redhat.com>2011-03-21 15:57:11 -0400
commit1fccdfccddf1c785b43102690b827b51bd827fb7 (patch)
treeb8d8b66a98d8df51dfc0098dab22f45e7b522152
parent23f3c80cc1f5ac152f49f19e73b092ffd5da5116 (diff)
downloadfreeipa-1fccdfccddf1c785b43102690b827b51bd827fb7.tar.gz
freeipa-1fccdfccddf1c785b43102690b827b51bd827fb7.tar.xz
freeipa-1fccdfccddf1c785b43102690b827b51bd827fb7.zip
Added sudo rule test cases.
-rw-r--r--install/ui/test/functional/sudorule-activation.html67
-rw-r--r--install/ui/test/functional/sudorule-add.html52
-rw-r--r--install/ui/test/functional/sudorule-del.html56
-rw-r--r--install/ui/test/functional/sudorule-find.html77
-rw-r--r--install/ui/test/functional/sudorule-host.html86
-rw-r--r--install/ui/test/functional/sudorule-mod.html77
-rw-r--r--install/ui/test/functional/sudorule-runasuser.html86
-rw-r--r--install/ui/test/functional/sudorule-suite.html25
-rw-r--r--install/ui/test/functional/sudorule-user.html86
9 files changed, 612 insertions, 0 deletions
diff --git a/install/ui/test/functional/sudorule-activation.html b/install/ui/test/functional/sudorule-activation.html
new file mode 100644
index 00000000..e5ecc423
--- /dev/null
+++ b/install/ui/test/functional/sudorule-activation.html
@@ -0,0 +1,67 @@
+<?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="https://localhost/" />
+<title>Sudo Rule Activation</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Sudo Rule Activation</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=testsudorule</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextPresent</td>
+ <td>testsudorule:</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//input[@name='ipaenabledflag' and @value='FALSE']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=Update</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextNotPresent</td>
+ <td>undo</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>ipaenabledflag</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=Update</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextNotPresent</td>
+ <td>undo</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-add.html b/install/ui/test/functional/sudorule-add.html
new file mode 100644
index 00000000..4770d7de
--- /dev/null
+++ b/install/ui/test/functional/sudorule-add.html
@@ -0,0 +1,52 @@
+<?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="https://localhost/" />
+<title>Add Sudo Rule</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Add Sudo Rule</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForNotVisible</td>
+ <td>//span[@id='header-network-activity-indicator']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']/div[@class='action-panel']//a[@title='Add']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>cn</td>
+ <td>testsudorule</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForNotVisible</td>
+ <td>//span[@id='header-network-activity-indicator']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-del.html b/install/ui/test/functional/sudorule-del.html
new file mode 100644
index 00000000..fff437bc
--- /dev/null
+++ b/install/ui/test/functional/sudorule-del.html
@@ -0,0 +1,56 @@
+<?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="https://localhost/" />
+<title>Delete Sudo Rule</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Delete Sudo Rule</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForNotVisible</td>
+ <td>//span[@id='header-network-activity-indicator']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']/div[@class='action-panel']//a[@title='Delete']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForNotVisible</td>
+ <td>//span[@id='header-network-activity-indicator']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-find.html b/install/ui/test/functional/sudorule-find.html
new file mode 100644
index 00000000..20d8db88
--- /dev/null
+++ b/install/ui/test/functional/sudorule-find.html
@@ -0,0 +1,77 @@
+<?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="https://localhost/" />
+<title>Search Sudo Rule</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Search Sudo Rule</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForNotVisible</td>
+ <td>//span[@id='header-network-activity-indicator']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>search-sudorule-filter</td>
+ <td>test</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']/span/div[1]/span[1]/a/span</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>search-sudorule-filter</td>
+ <td>xxx</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']/span/div[1]/span[1]/a/span</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>search-sudorule-filter</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']/span/div[1]/span[1]/a/span</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-host.html b/install/ui/test/functional/sudorule-host.html
new file mode 100644
index 00000000..8b552d6a
--- /dev/null
+++ b/install/ui/test/functional/sudorule-host.html
@@ -0,0 +1,86 @@
+<?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="https://localhost/" />
+<title>Sudo Rule Host</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Sudo Rule Host</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=testsudorule</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextPresent</td>
+ <td>testsudorule:</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='hostcategory']//span[@name='memberhost_host']//a[@title='Add']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@name='available']//input[@value='test.example.com']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@name='available']//input[@value='test.example.com']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=&gt;&gt;</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='hostcategory']//span[@name='memberhost_host']//input[@value='test.example.com']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='hostcategory']//span[@name='memberhost_host']//input[@value='test.example.com']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='hostcategory']//span[@name='memberhost_host']//a[@title='Delete']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//div[@id='sudorule']//span[@name='hostcategory']//span[@name='memberhost_host']//input[@value='test.example.com']</td>
+ <td></td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-mod.html b/install/ui/test/functional/sudorule-mod.html
new file mode 100644
index 00000000..1e869eda
--- /dev/null
+++ b/install/ui/test/functional/sudorule-mod.html
@@ -0,0 +1,77 @@
+<?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="https://localhost/" />
+<title>Edit Sudo Rule</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Edit Sudo Rule</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=testsudorule</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextPresent</td>
+ <td>testsudorule:</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>description</td>
+ <td></td>
+</tr>
+<tr>
+ <td>typeKeys</td>
+ <td>description</td>
+ <td>Test Sudo Rule</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=Update</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextNotPresent</td>
+ <td>undo</td>
+ <td></td>
+</tr>
+<tr>
+ <td>typeKeys</td>
+ <td>description</td>
+ <td>xxx</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>description</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=Update</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextNotPresent</td>
+ <td>undo</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-runasuser.html b/install/ui/test/functional/sudorule-runasuser.html
new file mode 100644
index 00000000..d78a9fcb
--- /dev/null
+++ b/install/ui/test/functional/sudorule-runasuser.html
@@ -0,0 +1,86 @@
+<?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="https://localhost/" />
+<title>Sudo Rule Run-As User</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Sudo Rule Run-As User</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=testsudorule</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextPresent</td>
+ <td>testsudorule:</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='ipasudorunasusercategory']//span[@name='ipasudorunas_user']//a[@title='Add']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@name='available']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@name='available']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=&gt;&gt;</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='ipasudorunasusercategory']//span[@name='ipasudorunas_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='ipasudorunasusercategory']//span[@name='ipasudorunas_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='ipasudorunasusercategory']//span[@name='ipasudorunas_user']//a[@title='Delete']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//div[@id='sudorule']//span[@name='ipasudorunasusercategory']//span[@name='ipasudorunas_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-suite.html b/install/ui/test/functional/sudorule-suite.html
new file mode 100644
index 00000000..2674cfbf
--- /dev/null
+++ b/install/ui/test/functional/sudorule-suite.html
@@ -0,0 +1,25 @@
+<?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="user-add.html">Add User</a></td></tr>
+<tr><td><a href="host-add.html">Add Host</a></td></tr>
+<tr><td><a href="sudorule-add.html">Add Sudo Rule</a></td></tr>
+<tr><td><a href="sudorule-find.html">Search Sudo Rule</a></td></tr>
+<tr><td><a href="sudorule-mod.html">Edit Sudo Rule</a></td></tr>
+<tr><td><a href="sudorule-activation.html">Sudo Rule Activation</a></td></tr>
+<tr><td><a href="sudorule-user.html">Sudo Rule User</a></td></tr>
+<tr><td><a href="sudorule-host.html">Sudo Rule Host</a></td></tr>
+<tr><td><a href="sudorule-runasuser.html">Sudo Rule Run-As User</a></td></tr>
+<tr><td><a href="sudorule-del.html">Delete Sudo Rule</a></td></tr>
+<tr><td><a href="host-del.html">Delete Host</a></td></tr>
+<tr><td><a href="user-del.html">Delete User</a></td></tr>
+</tbody></table>
+</body>
+</html>
diff --git a/install/ui/test/functional/sudorule-user.html b/install/ui/test/functional/sudorule-user.html
new file mode 100644
index 00000000..5846b293
--- /dev/null
+++ b/install/ui/test/functional/sudorule-user.html
@@ -0,0 +1,86 @@
+<?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="https://localhost/" />
+<title>Sudo Rule User</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Sudo Rule User</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/ipa/ui/#navigation=1&amp;policy=2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='search']//input[@value='testsudorule']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=testsudorule</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForTextPresent</td>
+ <td>testsudorule:</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='usercategory']//span[@name='memberuser_user']//a[@title='Add']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@name='available']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@name='available']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>link=&gt;&gt;</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='sudorule']//span[@name='usercategory']//span[@name='memberuser_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='usercategory']//span[@name='memberuser_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='sudorule']//span[@name='usercategory']//span[@name='memberuser_user']//a[@title='Delete']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//button[@type='button']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//div[@id='sudorule']//span[@name='usercategory']//span[@name='memberuser_user']//input[@value='testuser']</td>
+ <td></td>
+</tr>
+</tbody></table>
+</body>
+</html>