r113917 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r113916‎ | r113917 | r113918 >
Date:14:22, 15 March 2012
Author:yonishostak
Status:deferred
Tags:
Comment:
AFTv5: added first batch of selenium tests for the feedback page
Modified paths:
  • /trunk/extensions/ArticleFeedbackv5/tests (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/000_prerequisite_login_hider.testcase (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/010_load_feedback_page.testcase (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/015_voting.testcase (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/020_flag_abuse.testcase (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/feedback_page.testsuite (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/README.txt (added) (history)
  • /trunk/extensions/ArticleFeedbackv5/tests/Selenium/testdata.xml (added) (history)

Diff [purge]

Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/020_flag_abuse.testcase
@@ -0,0 +1,63 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
 6+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 7+<link rel="selenium.base" href="http://localhost/~yoni/mediawiki/index.php/Special:ArticleFeedbackv5/Test" />
 8+<title>020: Flag as abuse</title>
 9+</head>
 10+<body>
 11+<table cellpadding="1" cellspacing="1" border="1">
 12+<thead>
 13+<tr><td rowspan="1" colspan="3">020: Flag as abuse</td></tr>
 14+</thead><tbody>
 15+<!--Flag as abuse-->
 16+<tr>
 17+ <td>storeEval</td>
 18+ <td>window.document.getElementById(&quot;articleFeedbackv5-abuse-link-${firstPostId}&quot;).textContent.split(&quot;(&quot;)[1].substr(0, 1)</td>
 19+ <td>initAbuseCount</td>
 20+</tr>
 21+<tr>
 22+ <td>click</td>
 23+ <td>id=articleFeedbackv5-abuse-link-${firstPostId}</td>
 24+ <td></td>
 25+</tr>
 26+<tr>
 27+ <td>waitForElementPresent</td>
 28+ <td>id=articleFeedbackv5-unabuse-link-${firstPostId}</td>
 29+ <td></td>
 30+</tr>
 31+<tr>
 32+ <td>storeEval</td>
 33+ <td>window.document.getElementById(&quot;articleFeedbackv5-unabuse-link-${firstPostId}&quot;).textContent.split(&quot;(&quot;)[1].substr(0, 1)</td>
 34+ <td>newAbuseCount</td>
 35+</tr>
 36+<tr>
 37+ <td>assertEval</td>
 38+ <td>${newAbuseCount}-${initAbuseCount}</td>
 39+ <td>1</td>
 40+</tr>
 41+<!--Unflag as abuse-->
 42+<tr>
 43+ <td>click</td>
 44+ <td>id=articleFeedbackv5-unabuse-link-${firstPostId}</td>
 45+ <td></td>
 46+</tr>
 47+<tr>
 48+ <td>waitForElementPresent</td>
 49+ <td>id=articleFeedbackv5-abuse-link-${firstPostId}</td>
 50+ <td></td>
 51+</tr>
 52+<tr>
 53+ <td>storeEval</td>
 54+ <td>window.document.getElementById(&quot;articleFeedbackv5-abuse-link-${firstPostId}&quot;).textContent.split(&quot;(&quot;)[1].substr(0, 1)</td>
 55+ <td>newAbuseCount</td>
 56+</tr>
 57+<tr>
 58+ <td>assertEval</td>
 59+ <td>${newAbuseCount}-${initAbuseCount}</td>
 60+ <td>0</td>
 61+</tr>
 62+</tbody></table>
 63+</body>
 64+</html>
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/015_voting.testcase
@@ -0,0 +1,263 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
 6+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 7+<link rel="selenium.base" href="http://localhost/~yoni/mediawiki/index.php/Special:ArticleFeedbackv5/Test" />
 8+<title>015: Voting</title>
 9+</head>
 10+<body>
 11+<table cellpadding="1" cellspacing="1" border="1">
 12+<thead>
 13+<tr><td rowspan="1" colspan="3">015: Voting</td></tr>
 14+</thead><tbody>
 15+<!--Capture initial state-->
 16+<tr>
 17+ <td>storeEval</td>
 18+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 19+ <td>initVotesText</td>
 20+</tr>
 21+<tr>
 22+ <td>storeEval</td>
 23+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 24+ <td>initHelpfulCount</td>
 25+</tr>
 26+<tr>
 27+ <td>storeEval</td>
 28+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 29+ <td>initUnhelpfulCount</td>
 30+</tr>
 31+<!--Vote helpful-->
 32+<tr>
 33+ <td>click</td>
 34+ <td>id=articleFeedbackv5-helpful-link-${firstPostId}</td>
 35+ <td></td>
 36+</tr>
 37+<tr>
 38+ <td>waitForCondition</td>
 39+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent != '${initVotesText}'</td>
 40+ <td>10000</td>
 41+</tr>
 42+<tr>
 43+ <td>storeEval</td>
 44+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 45+ <td>newVotesText</td>
 46+</tr>
 47+<tr>
 48+ <td>storeEval</td>
 49+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 50+ <td>newHelpfulCount</td>
 51+</tr>
 52+<tr>
 53+ <td>storeEval</td>
 54+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 55+ <td>newUnhelpfulCount</td>
 56+</tr>
 57+<tr>
 58+ <td>assertEval</td>
 59+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 60+ <td>1</td>
 61+</tr>
 62+<tr>
 63+ <td>waitForElementPresent</td>
 64+ <td>id=articleFeedbackv5-unhelpful-link-${firstPostId}</td>
 65+ <td></td>
 66+</tr>
 67+<!--Vote unhelpful-->
 68+<tr>
 69+ <td>click</td>
 70+ <td>id=articleFeedbackv5-unhelpful-link-${firstPostId}</td>
 71+ <td></td>
 72+</tr>
 73+<tr>
 74+ <td>waitForCondition</td>
 75+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent != '${initVotesText}'</td>
 76+ <td>10000</td>
 77+</tr>
 78+<tr>
 79+ <td>storeEval</td>
 80+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 81+ <td>newVotesText</td>
 82+</tr>
 83+<tr>
 84+ <td>storeEval</td>
 85+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 86+ <td>newHelpfulCount</td>
 87+</tr>
 88+<tr>
 89+ <td>storeEval</td>
 90+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 91+ <td>newUnhelpfulCount</td>
 92+</tr>
 93+<tr>
 94+ <td>assertEval</td>
 95+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 96+ <td>0</td>
 97+</tr>
 98+<tr>
 99+ <td>assertEval</td>
 100+ <td>${newUnhelpfulCount} - ${initUnhelpfulCount}</td>
 101+ <td>1</td>
 102+</tr>
 103+<tr>
 104+ <td>waitForElementPresent</td>
 105+ <td>id=articleFeedbackv5-reverseunhelpful-link-${firstPostId}</td>
 106+ <td></td>
 107+</tr>
 108+<!--Reverse unhelpul vote-->
 109+<tr>
 110+ <td>click</td>
 111+ <td>id=articleFeedbackv5-reverseunhelpful-link-${firstPostId}</td>
 112+ <td></td>
 113+</tr>
 114+<tr>
 115+ <td>waitForCondition</td>
 116+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent == '${initVotesText}'</td>
 117+ <td>10000</td>
 118+</tr>
 119+<tr>
 120+ <td>storeEval</td>
 121+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 122+ <td>newVotesText</td>
 123+</tr>
 124+<tr>
 125+ <td>storeEval</td>
 126+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 127+ <td>newHelpfulCount</td>
 128+</tr>
 129+<tr>
 130+ <td>storeEval</td>
 131+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 132+ <td>newUnhelpfulCount</td>
 133+</tr>
 134+<tr>
 135+ <td>assertEval</td>
 136+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 137+ <td>0</td>
 138+</tr>
 139+<tr>
 140+ <td>assertEval</td>
 141+ <td>${newUnhelpfulCount} - ${initUnhelpfulCount}</td>
 142+ <td>0</td>
 143+</tr>
 144+<tr>
 145+ <td>waitForElementPresent</td>
 146+ <td>id=articleFeedbackv5-unhelpful-link-${firstPostId}</td>
 147+ <td></td>
 148+</tr>
 149+<!--Vote unhelpful again-->
 150+<tr>
 151+ <td>click</td>
 152+ <td>id=articleFeedbackv5-unhelpful-link-${firstPostId}</td>
 153+ <td></td>
 154+</tr>
 155+<tr>
 156+ <td>waitForCondition</td>
 157+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent != '${initVotesText}'</td>
 158+ <td>10000</td>
 159+</tr>
 160+<tr>
 161+ <td>storeEval</td>
 162+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 163+ <td>newVotesText</td>
 164+</tr>
 165+<tr>
 166+ <td>storeEval</td>
 167+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 168+ <td>newHelpfulCount</td>
 169+</tr>
 170+<tr>
 171+ <td>storeEval</td>
 172+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 173+ <td>newUnhelpfulCount</td>
 174+</tr>
 175+<tr>
 176+ <td>assertEval</td>
 177+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 178+ <td>0</td>
 179+</tr>
 180+<tr>
 181+ <td>assertEval</td>
 182+ <td>${newUnhelpfulCount} - ${initUnhelpfulCount}</td>
 183+ <td>1</td>
 184+</tr>
 185+<!--Vote helpful-->
 186+<tr>
 187+ <td>click</td>
 188+ <td>id=articleFeedbackv5-helpful-link-${firstPostId}</td>
 189+ <td></td>
 190+</tr>
 191+<tr>
 192+ <td>waitForCondition</td>
 193+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent != '${initVotesText}'</td>
 194+ <td>10000</td>
 195+</tr>
 196+<tr>
 197+ <td>storeEval</td>
 198+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 199+ <td>newVotesText</td>
 200+</tr>
 201+<tr>
 202+ <td>storeEval</td>
 203+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 204+ <td>newHelpfulCount</td>
 205+</tr>
 206+<tr>
 207+ <td>storeEval</td>
 208+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 209+ <td>newUnhelpfulCount</td>
 210+</tr>
 211+<tr>
 212+ <td>assertEval</td>
 213+ <td>${newUnhelpfulCount} - ${initUnhelpfulCount}</td>
 214+ <td>0</td>
 215+</tr>
 216+<tr>
 217+ <td>assertEval</td>
 218+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 219+ <td>1</td>
 220+</tr>
 221+<tr>
 222+ <td>waitForElementPresent</td>
 223+ <td>id=articleFeedbackv5-reversehelpful-link-${firstPostId}</td>
 224+ <td></td>
 225+</tr>
 226+<!--Reverse helpful-->
 227+<tr>
 228+ <td>click</td>
 229+ <td>id=articleFeedbackv5-reversehelpful-link-${firstPostId}</td>
 230+ <td></td>
 231+</tr>
 232+<tr>
 233+ <td>waitForCondition</td>
 234+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent == '${initVotesText}'</td>
 235+ <td>10000</td>
 236+</tr>
 237+<tr>
 238+ <td>storeEval</td>
 239+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent</td>
 240+ <td>newVotesText</td>
 241+</tr>
 242+<tr>
 243+ <td>storeEval</td>
 244+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[0]</td>
 245+ <td>newHelpfulCount</td>
 246+</tr>
 247+<tr>
 248+ <td>storeEval</td>
 249+ <td>window.document.getElementById(&quot;articleFeedbackv5-helpful-votes-${firstPostId}&quot;).textContent.split(' ')[3]</td>
 250+ <td>newUnhelpfulCount</td>
 251+</tr>
 252+<tr>
 253+ <td>assertEval</td>
 254+ <td>${newHelpfulCount} - ${initHelpfulCount}</td>
 255+ <td>0</td>
 256+</tr>
 257+<tr>
 258+ <td>assertEval</td>
 259+ <td>${newUnhelpfulCount} - ${initUnhelpfulCount}</td>
 260+ <td>0</td>
 261+</tr>
 262+</tbody></table>
 263+</body>
 264+</html>
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/feedback_page.testsuite
@@ -0,0 +1,17 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+<head>
 6+ <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
 7+ <title>Feedback page</title>
 8+</head>
 9+<body>
 10+<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"><tbody>
 11+<tr><td><b>Feedback page</b></td></tr>
 12+<tr><td><a href="000_prerequisite_login_hider.testcase">000_prerequisite_login_hider</a></td></tr>
 13+<tr><td><a href="010_load_feedback_page.testcase">010_load_feedback_page</a></td></tr>
 14+<tr><td><a href="015_voting.testcase">015_voting</a></td></tr>
 15+<tr><td><a href="020_flag_abuse.testcase">020_flag_abuse</a></td></tr>
 16+</tbody></table>
 17+</body>
 18+</html>
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/010_load_feedback_page.testcase
@@ -0,0 +1,41 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
 6+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 7+<link rel="selenium.base" href="http://localhost/~yoni/mediawiki/index.php/Special:ArticleFeedbackv5/Test" />
 8+<title>Load feedback page</title>
 9+</head>
 10+<body>
 11+<table cellpadding="1" cellspacing="1" border="1">
 12+<thead>
 13+<tr><td rowspan="1" colspan="3">Load feedback page</td></tr>
 14+</thead><tbody>
 15+<tr>
 16+ <td>open</td>
 17+ <td>${baseUrl}/Special:ArticleFeedbackv5/${testArticle}</td>
 18+ <td></td>
 19+</tr>
 20+<tr>
 21+ <td>assertElementPresent</td>
 22+ <td>xpath=//*[@id='articleFeedbackv5-show-feedback']</td>
 23+ <td></td>
 24+</tr>
 25+<tr>
 26+ <td>waitForElementPresent</td>
 27+ <td>xpath=//*[@id='articleFeedbackv5-show-feedback']/div[@class='articleFeedbackv5-feedback']</td>
 28+ <td></td>
 29+</tr>
 30+<tr>
 31+ <td>storeAttribute</td>
 32+ <td>xpath=//*[@class='articleFeedbackv5-feedback']/@rel</td>
 33+ <td>firstPostId</td>
 34+</tr>
 35+<tr>
 36+ <td>getEval</td>
 37+ <td>LOG.info(&quot;${firstPostId}&quot;)</td>
 38+ <td></td>
 39+</tr>
 40+</tbody></table>
 41+</body>
 42+</html>
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/FeedbackPage/000_prerequisite_login_hider.testcase
@@ -0,0 +1,81 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 4+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 5+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
 6+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 7+<link rel="selenium.base" href="http://localhost/~yoni/mediawiki/index.php/Special:ArticleFeedbackv5/Test" />
 8+<title>Prerequisite: login as hider</title>
 9+</head>
 10+<body>
 11+<table cellpadding="1" cellspacing="1" border="1">
 12+<thead>
 13+<tr><td rowspan="1" colspan="3">Prerequisite: login as hider</td></tr>
 14+</thead><tbody>
 15+<tr>
 16+ <td>forXml</td>
 17+ <td>../testdata.xml</td>
 18+ <td></td>
 19+</tr>
 20+<tr>
 21+ <td>store</td>
 22+ <td>${value}</td>
 23+ <td>${key}</td>
 24+</tr>
 25+<tr>
 26+ <td>endForXml</td>
 27+ <td></td>
 28+ <td></td>
 29+</tr>
 30+<tr>
 31+ <td>open</td>
 32+ <td>${baseUrl}</td>
 33+ <td></td>
 34+</tr>
 35+<tr>
 36+ <td>deleteAllVisibleCookies</td>
 37+ <td></td>
 38+ <td></td>
 39+</tr>
 40+<tr>
 41+ <td>storeEval</td>
 42+ <td>null != window.document.getElementById('pt-logout')</td>
 43+ <td>canLogOut</td>
 44+</tr>
 45+<tr>
 46+ <td>if</td>
 47+ <td>&quot;false&quot; != &quot;${canLogOut}&quot;</td>
 48+ <td></td>
 49+</tr>
 50+<tr>
 51+ <td>clickAndWait</td>
 52+ <td>xpath=//*[@id='pt-logout']/a</td>
 53+ <td></td>
 54+</tr>
 55+<tr>
 56+ <td>endIf</td>
 57+ <td></td>
 58+ <td></td>
 59+</tr>
 60+<tr>
 61+ <td>clickAndWait</td>
 62+ <td>xpath=//*[@id='pt-anonlogin']/a</td>
 63+ <td></td>
 64+</tr>
 65+<tr>
 66+ <td>type</td>
 67+ <td>xpath=//input[@name='wpName']</td>
 68+ <td>${hiderUserName}</td>
 69+</tr>
 70+<tr>
 71+ <td>type</td>
 72+ <td>xpath=//input[@name='wpPassword']</td>
 73+ <td>${hiderUserPassword}</td>
 74+</tr>
 75+<tr>
 76+ <td>clickAndWait</td>
 77+ <td>id=wpLoginAttempt</td>
 78+ <td></td>
 79+</tr>
 80+</tbody></table>
 81+</body>
 82+</html>
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/testdata.xml
@@ -0,0 +1,9 @@
 2+<?xml version="1.0" encoding="utf-8" ?>
 3+<testdata>
 4+ <vars key="baseUrl" value="http://localhost/~yoni/mediawiki/index.php" />
 5+ <vars key="testArticle" value="Test" />
 6+ <vars key="hiderUserName" value="Hider" />
 7+ <vars key="hiderUserPassword" value="123" />
 8+ <vars key="oversighterUserName" value="Yoni" />
 9+ <vars key="oversighterUserPassword" value="123" />
 10+</testdata>
\ No newline at end of file
Index: trunk/extensions/ArticleFeedbackv5/tests/Selenium/README.txt
@@ -0,0 +1,4 @@
 2+Required Selenium version: 1.6.0
 3+Required Selenium Extensions:
 4+ SEL-Blocks, v1.3
 5+

Status & tagging log