diff options
author | ioguix | 2010-09-10 15:35:15 +0000 |
---|---|---|
committer | ioguix | 2010-09-10 15:38:49 +0000 |
commit | edd23bc3bbb85c9138ef4cab0d870bae7df8cc08 (patch) | |
tree | 6970be73b333c43ece32745c05d55019404c4079 | |
parent | 89c15df330e589658a0f6d48bc3b57610a880421 (diff) |
Support "ALTER SEQUENCE START ..." for 8.4+ and sequence cleanups
* add support for altering sequence start for 8.4+
* add a link to restart the sequence on its property page for 8.4+
* remove useless hasAlterSequenceProps() method
* fix sequences selenium tests for 8.4+
* add test for altering the start property in selenium test
-rwxr-xr-x | classes/database/Postgres.php | 44 | ||||
-rw-r--r-- | classes/database/Postgres80.php | 11 | ||||
-rw-r--r-- | classes/database/Postgres83.php | 35 | ||||
-rw-r--r-- | lang/english.php | 4 | ||||
-rw-r--r-- | lang/recoded/english.php | 4 | ||||
-rw-r--r-- | sequences.php | 89 | ||||
-rw-r--r-- | tests/selenium/src/15-sequence.php | 59 |
7 files changed, 175 insertions, 71 deletions
diff --git a/classes/database/Postgres.php b/classes/database/Postgres.php index d6ebff13..a0c566f1 100755 --- a/classes/database/Postgres.php +++ b/classes/database/Postgres.php @@ -2738,6 +2738,23 @@ class Postgres extends ADODB_base { } /** + * Restart a given sequence to its start value + * @param $sequence Sequence name + * @return 0 success + * @return -1 sequence not found + */ + function restartSequence($sequence) { + + $f_schema = $this->_schema; + $this->fieldClean($f_schema); + $this->fieldClean($sequence); + + $sql = "ALTER SEQUENCE \"{$f_schema}\".\"{$sequence}\" RESTART;"; + + return $this->execute($sql); + } + + /** * Resets a given sequence to min value of sequence * @param $sequence Sequence name * @return 0 success @@ -2857,21 +2874,23 @@ class Postgres extends ADODB_base { * @param $increment The sequence incremental value * @param $minvalue The sequence minimum value * @param $maxvalue The sequence maximum value - * @param $startvalue The sequence current value + * @param $restartvalue The sequence current value * @param $cachevalue The sequence cache value * @param $cycledvalue Sequence can cycle ? + * @param $startvalue The sequence start value when issueing a restart * @return 0 success */ function alterSequenceProps($seqrs, $increment, $minvalue, $maxvalue, - $startvalue, $cachevalue, $cycledvalue) { + $restartvalue, $cachevalue, $cycledvalue, $startvalue) { $sql = ''; /* vars are cleaned in _alterSequence */ if (!empty($increment) && ($increment != $seqrs->fields['increment_by'])) $sql .= " INCREMENT {$increment}"; if (!empty($minvalue) && ($minvalue != $seqrs->fields['min_value'])) $sql .= " MINVALUE {$minvalue}"; if (!empty($maxvalue) && ($maxvalue != $seqrs->fields['max_value'])) $sql .= " MAXVALUE {$maxvalue}"; - if (!empty($startvalue) && ($startvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$startvalue}"; + if (!empty($restartvalue) && ($restartvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$restartvalue}"; if (!empty($cachevalue) && ($cachevalue != $seqrs->fields['cache_value'])) $sql .= " CACHE {$cachevalue}"; + if (!empty($startvalue) && ($startvalue != $seqrs->fields['start_value'])) $sql .= " START {$startvalue}"; // toggle cycle yes/no if (!is_null($cycledvalue)) $sql .= (!$cycledvalue ? ' NO ' : '') . " CYCLE"; if ($sql != '') { @@ -2894,9 +2913,10 @@ class Postgres extends ADODB_base { * @param $increment The increment * @param $minvalue The min value * @param $maxvalue The max value - * @param $startvalue The starting value + * @param $restartvalue The starting value * @param $cachevalue The cache value * @param $cycledvalue True if cycled, false otherwise + * @param $startvalue The sequence start value when issueing a restart * @return 0 success * @return -3 rename error * @return -4 comment error @@ -2906,7 +2926,7 @@ class Postgres extends ADODB_base { */ protected function _alterSequence($seqrs, $name, $comment, $owner, $schema, $increment, - $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue) { + $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue) { $this->fieldArrayClean($seqrs->fields); @@ -2925,11 +2945,12 @@ class Postgres extends ADODB_base { $this->clean($increment); $this->clean($minvalue); $this->clean($maxvalue); - $this->clean($startvalue); + $this->clean($restartvalue); $this->clean($cachevalue); $this->clean($cycledvalue); + $this->clean($startvalue); $status = $this->alterSequenceProps($seqrs, $increment, $minvalue, - $maxvalue, $startvalue, $cachevalue, $cycledvalue); + $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue); if ($status != 0) return -6; @@ -2958,16 +2979,17 @@ class Postgres extends ADODB_base { * @param $increment The increment * @param $minvalue The min value * @param $maxvalue The max value - * @param $startvalue The starting value + * @param $restartvalue The starting value * @param $cachevalue The cache value * @param $cycledvalue True if cycled, false otherwise + * @param $startvalue The sequence start value when issueing a restart * @return 0 success * @return -1 transaction error * @return -2 get existing sequence error * @return $this->_alterSequence error code */ function alterSequence($sequence, $name, $comment, $owner=null, $schema=null, $increment=null, - $minvalue=null, $maxvalue=null, $startvalue=null, $cachevalue=null, $cycledvalue=null) { + $minvalue=null, $maxvalue=null, $restartvalue=null, $cachevalue=null, $cycledvalue=null, $startvalue=null) { $this->fieldClean($sequence); @@ -2983,7 +3005,7 @@ class Postgres extends ADODB_base { } $status = $this->_alterSequence($data, $name, $comment, $owner, $schema, $increment, - $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue); + $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue); if ($status != 0) { $this->rollbackTransaction(); @@ -7966,8 +7988,8 @@ class Postgres extends ADODB_base { function hasAlterDatabaseRename() { return true; } function hasAlterSchema() { return true; } function hasAlterSchemaOwner() { return true; } - function hasAlterSequenceProps() { return true; } function hasAlterSequenceSchema() { return true; } + function hasAlterSequenceStart() { return true; } function hasAlterTableSchema() { return true; } function hasAutovacuum() { return true; } function hasCreateTableLike() { return true; } diff --git a/classes/database/Postgres80.php b/classes/database/Postgres80.php index 3abe31f6..860f56b6 100644 --- a/classes/database/Postgres80.php +++ b/classes/database/Postgres80.php @@ -215,18 +215,20 @@ class Postgres80 extends Postgres81 { * @param $increment The increment * @param $minvalue The min value * @param $maxvalue The max value - * @param $startvalue The starting value + * @param $restartvalue The starting value * @param $cachevalue The cache value * @param $cycledvalue True if cycled, false otherwise + * @param $startvalue The sequence start value when issueing a restart * @return 0 success * @return -3 rename error * @return -4 comment error * @return -5 owner error * @return -6 get sequence props error + * @return -7 schema error */ protected function _alterSequence($seqrs, $name, $comment, $owner, $schema, $increment, - $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue) { + $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue) { /* $schema not supported in pg80- */ $this->fieldArrayClean($seqrs->fields); @@ -246,11 +248,12 @@ class Postgres80 extends Postgres81 { $this->clean($increment); $this->clean($minvalue); $this->clean($maxvalue); - $this->clean($startvalue); + $this->clean($restartvalue); $this->clean($cachevalue); $this->clean($cycledvalue); + $this->clean($startvalue); $status = $this->alterSequenceProps($seqrs, $increment, $minvalue, - $maxvalue, $startvalue, $cachevalue, $cycledvalue); + $maxvalue, $restartvalue, $cachevalue, $cycledvalue, null); if ($status != 0) return -6; diff --git a/classes/database/Postgres83.php b/classes/database/Postgres83.php index cc4df42c..35cf6752 100644 --- a/classes/database/Postgres83.php +++ b/classes/database/Postgres83.php @@ -272,6 +272,39 @@ class Postgres83 extends Postgres { // Sequence functions /** + * Alter a sequence's properties + * @param $seqrs The sequence RecordSet returned by getSequence() + * @param $increment The sequence incremental value + * @param $minvalue The sequence minimum value + * @param $maxvalue The sequence maximum value + * @param $restartvalue The sequence current value + * @param $cachevalue The sequence cache value + * @param $cycledvalue Sequence can cycle ? + * @param $startvalue The sequence start value when issueing a restart (ignored) + * @return 0 success + */ + function alterSequenceProps($seqrs, $increment, $minvalue, $maxvalue, + $restartvalue, $cachevalue, $cycledvalue, $startvalue) { + + $sql = ''; + /* vars are cleaned in _alterSequence */ + if (!empty($increment) && ($increment != $seqrs->fields['increment_by'])) $sql .= " INCREMENT {$increment}"; + if (!empty($minvalue) && ($minvalue != $seqrs->fields['min_value'])) $sql .= " MINVALUE {$minvalue}"; + if (!empty($maxvalue) && ($maxvalue != $seqrs->fields['max_value'])) $sql .= " MAXVALUE {$maxvalue}"; + if (!empty($restartvalue) && ($restartvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$restartvalue}"; + if (!empty($cachevalue) && ($cachevalue != $seqrs->fields['cache_value'])) $sql .= " CACHE {$cachevalue}"; + // toggle cycle yes/no + if (!is_null($cycledvalue)) $sql .= (!$cycledvalue ? ' NO ' : '') . " CYCLE"; + if ($sql != '') { + $f_schema = $this->_schema; + $this->fieldClean($f_schema); + $sql = "ALTER SEQUENCE \"{$f_schema}\".\"{$seqrs->fields['seqname']}\" {$sql}"; + return $this->execute($sql); + } + return 0; + } + + /** * Alter a sequence's owner * @param $seqrs The sequence RecordSet returned by getSequence() * @param $name The new owner for the sequence @@ -293,7 +326,7 @@ class Postgres83 extends Postgres { function hasQueryKill() { return false; } function hasDatabaseCollation() { return false; } - + function hasAlterSequenceStart() { return false; } } ?> diff --git a/lang/english.php b/lang/english.php index e7c7ac5a..a843ad49 100644 --- a/lang/english.php +++ b/lang/english.php @@ -66,6 +66,7 @@ $lang['strac'] = 'Enable AutoComplete'; $lang['strsave'] = 'Save'; $lang['strreset'] = 'Reset'; + $lang['strrestart'] = 'Restart'; $lang['strinsert'] = 'Insert'; $lang['strselect'] = 'Select'; $lang['strdelete'] = 'Delete'; @@ -435,6 +436,7 @@ $lang['strlastvalue'] = 'Last value'; $lang['strincrementby'] = 'Increment by'; $lang['strstartvalue'] = 'Start value'; + $lang['strrestartvalue'] = 'Restart value'; $lang['strmaxvalue'] = 'Max value'; $lang['strminvalue'] = 'Min value'; $lang['strcachevalue'] = 'Cache value'; @@ -447,6 +449,8 @@ $lang['strconfdropsequence'] = 'Are you sure you want to drop sequence "%s"?'; $lang['strsequencedropped'] = 'Sequence dropped.'; $lang['strsequencedroppedbad'] = 'Sequence drop failed.'; + $lang['strsequencerestart'] = 'Sequence restarted.'; + $lang['strsequencerestartbad'] = 'Sequence restart failed.'; $lang['strsequencereset'] = 'Sequence reset.'; $lang['strsequenceresetbad'] = 'Sequence reset failed.'; $lang['strsequencealtered'] = 'Sequence altered.'; diff --git a/lang/recoded/english.php b/lang/recoded/english.php index f22cd9f1..ad60bdb9 100644 --- a/lang/recoded/english.php +++ b/lang/recoded/english.php @@ -66,6 +66,7 @@ $lang['strac'] = 'Enable AutoComplete'; $lang['strsave'] = 'Save'; $lang['strreset'] = 'Reset'; + $lang['strrestart'] = 'Restart'; $lang['strinsert'] = 'Insert'; $lang['strselect'] = 'Select'; $lang['strdelete'] = 'Delete'; @@ -435,6 +436,7 @@ $lang['strlastvalue'] = 'Last value'; $lang['strincrementby'] = 'Increment by'; $lang['strstartvalue'] = 'Start value'; + $lang['strrestartvalue'] = 'Restart value'; $lang['strmaxvalue'] = 'Max value'; $lang['strminvalue'] = 'Min value'; $lang['strcachevalue'] = 'Cache value'; @@ -447,6 +449,8 @@ $lang['strconfdropsequence'] = 'Are you sure you want to drop sequence "%s"?'; $lang['strsequencedropped'] = 'Sequence dropped.'; $lang['strsequencedroppedbad'] = 'Sequence drop failed.'; + $lang['strsequencerestart'] = 'Sequence restarted.'; + $lang['strsequencerestartbad'] = 'Sequence restart failed.'; $lang['strsequencereset'] = 'Sequence reset.'; $lang['strsequenceresetbad'] = 'Sequence reset failed.'; $lang['strsequencealtered'] = 'Sequence altered.'; diff --git a/sequences.php b/sequences.php index 75ee4c48..d01127b1 100644 --- a/sequences.php +++ b/sequences.php @@ -124,25 +124,29 @@ echo "<p class=\"comment\">", $misc->printVal($sequence->fields['seqcomment']), "</p>\n"; echo "<table border=\"0\">"; - echo "<tr><th class=\"data\">{$lang['strname']}</th><th class=\"data\">{$lang['strlastvalue']}</th>"; - echo "<th class=\"data\">{$lang['strincrementby']}</th><th class=\"data\">{$lang['strmaxvalue']}</th>"; - echo "<th class=\"data\">{$lang['strminvalue']}</th><th class=\"data\">{$lang['strcachevalue']}</th>"; - // PostgreSQL 7.0 and below don't have logcount - if (isset($sequence->fields['log_cnt'])) { - echo "<th class=\"data\">{$lang['strlogcount']}</th>"; + echo "<tr><th class=\"data\">{$lang['strname']}</th>"; + if ($data->hasAlterSequenceStart()) { + echo "<th class=\"data\">{$lang['strstartvalue']}</th>"; } - echo "<th class=\"data\">{$lang['strcancycle']}</th><th class=\"data\">{$lang['striscalled']}</th></tr>"; + echo "<th class=\"data\">{$lang['strlastvalue']}</th>"; + echo "<th class=\"data\">{$lang['strincrementby']}</th>"; + echo "<th class=\"data\">{$lang['strmaxvalue']}</th>"; + echo "<th class=\"data\">{$lang['strminvalue']}</th>"; + echo "<th class=\"data\">{$lang['strcachevalue']}</th>"; + echo "<th class=\"data\">{$lang['strlogcount']}</th>"; + echo "<th class=\"data\">{$lang['strcancycle']}</th>"; + echo "<th class=\"data\">{$lang['striscalled']}</th></tr>"; echo "<tr>"; echo "<td class=\"data1\">", $misc->printVal($sequence->fields['seqname']), "</td>"; + if ($data->hasAlterSequenceStart()) { + echo "<td class=\"data1\">", $misc->printVal($sequence->fields['start_value']), "</td>"; + } echo "<td class=\"data1\">", $misc->printVal($sequence->fields['last_value']), "</td>"; echo "<td class=\"data1\">", $misc->printVal($sequence->fields['increment_by']), "</td>"; echo "<td class=\"data1\">", $misc->printVal($sequence->fields['max_value']), "</td>"; echo "<td class=\"data1\">", $misc->printVal($sequence->fields['min_value']), "</td>"; echo "<td class=\"data1\">", $misc->printVal($sequence->fields['cache_value']), "</td>"; - // PostgreSQL 7.0 and below don't have logcount - if (isset($sequence->fields['log_cnt'])) { - echo "<td class=\"data1\">", $misc->printVal($sequence->fields['log_cnt']), "</td>"; - } + echo "<td class=\"data1\">", $misc->printVal($sequence->fields['log_cnt']), "</td>"; echo "<td class=\"data1\">", ($sequence->fields['is_cycled'] ? $lang['stryes'] : $lang['strno']), "</td>"; echo "<td class=\"data1\">", ($sequence->fields['is_called'] ? $lang['stryes'] : $lang['strno']), "</td>"; echo "</tr>"; @@ -152,6 +156,9 @@ echo "\t<li><a href=\"sequences.php?action=confirm_alter&{$misc->href}&sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['stralter']}</a></li>\n"; echo "\t<li><a href=\"sequences.php?action=confirm_setval&{$misc->href}&sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strsetval']}</a></li>\n"; echo "\t<li><a href=\"sequences.php?action=nextval&{$misc->href}&sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strnextval']}</a></li>\n"; + if ($data->hasAlterSequenceStart()) { + echo "\t<li><a href=\"sequences.php?action=restart&{$misc->href}&sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strrestart']}</a></li>\n"; + } echo "\t<li><a href=\"sequences.php?action=reset&{$misc->href}&sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strreset']}</a></li>\n"; echo "\t<li><a href=\"sequences.php?{$misc->href}\">{$lang['strshowallsequences']}</a></li>\n</ul>\n"; } @@ -311,6 +318,20 @@ } /** + * Restarts a sequence + */ + function doRestart() { + global $data; + global $lang; + + $status = $data->restartSequence($_REQUEST['sequence']); + if ($status == 0) + doProperties($lang['strsequencerestart']); + else + doProperties($lang['strsequencerestartbad']); + } + + /** * Resets a sequence */ function doReset() { @@ -396,12 +417,13 @@ if (!isset($_POST['formMinValue'])) $_POST['formMinValue'] = null; if (!isset($_POST['formMaxValue'])) $_POST['formMaxValue'] = null; if (!isset($_POST['formStartValue'])) $_POST['formStartValue'] = null; + if (!isset($_POST['formRestartValue'])) $_POST['formRestartValue'] = null; if (!isset($_POST['formCacheValue'])) $_POST['formCacheValue'] = null; if (!isset($_POST['formCycledValue'])) $_POST['formCycledValue'] = null; $status = $data->alterSequence($_POST['sequence'], $_POST['name'], $_POST['comment'], $_POST['owner'], $_POST['newschema'], $_POST['formIncrement'], $_POST['formMinValue'], $_POST['formMaxValue'], - $_POST['formStartValue'], $_POST['formCacheValue'], isset($_POST['formCycledValue'])); + $_POST['formRestartValue'], $_POST['formCacheValue'], isset($_POST['formCycledValue']), $_POST['formStartValue']); if ($status == 0) { if ($_POST['sequence'] != $_POST['name']) { @@ -487,31 +509,35 @@ echo "<textarea rows=\"3\" cols=\"32\" name=\"comment\">", htmlspecialchars($_POST['comment']), "</textarea></td></tr>\n"; - if ($data->hasAlterSequenceProps()) { + if ($data->hasAlterSequenceStart()) { echo "<tr><th class=\"data left\">{$lang['strstartvalue']}</th>\n"; echo "<td class=\"data1\"><input name=\"formStartValue\" size=\"5\" value=\"", - htmlspecialchars($sequence->fields['last_value']), "\" /></td></tr>\n"; + htmlspecialchars($sequence->fields['start_value']), "\" /></td></tr>\n"; + } - echo "<tr><th class=\"data left\">{$lang['strincrementby']}</th>\n"; - echo "<td class=\"data1\"><input name=\"formIncrement\" size=\"5\" value=\"", - htmlspecialchars($sequence->fields['increment_by']), "\" /> </td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strrestartvalue']}</th>\n"; + echo "<td class=\"data1\"><input name=\"formRestartValue\" size=\"5\" value=\"", + htmlspecialchars($sequence->fields['last_value']), "\" /></td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strmaxvalue']}</th>\n"; - echo "<td class=\"data1\"><input name=\"formMaxValue\" size=\"5\" value=\"", - htmlspecialchars($sequence->fields['max_value']), "\" /></td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strincrementby']}</th>\n"; + echo "<td class=\"data1\"><input name=\"formIncrement\" size=\"5\" value=\"", + htmlspecialchars($sequence->fields['increment_by']), "\" /> </td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strminvalue']}</th>\n"; - echo "<td class=\"data1\"><input name=\"formMinValue\" size=\"5\" value=\"", - htmlspecialchars($sequence->fields['min_value']), "\" /></td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strmaxvalue']}</th>\n"; + echo "<td class=\"data1\"><input name=\"formMaxValue\" size=\"5\" value=\"", + htmlspecialchars($sequence->fields['max_value']), "\" /></td></tr>\n"; - echo "<tr><th class=\"data left\">{$lang['strcachevalue']}</th>\n"; - echo "<td class=\"data1\"><input name=\"formCacheValue\" size=\"5\" value=\"", - htmlspecialchars($sequence->fields['cache_value']), "\" /></td></tr>\n"; + echo "<tr><th class=\"data left\">{$lang['strminvalue']}</th>\n"; + echo "<td class=\"data1\"><input name=\"formMinValue\" size=\"5\" value=\"", + htmlspecialchars($sequence->fields['min_value']), "\" /></td></tr>\n"; - echo "<tr><th class=\"data left\"><label for=\"formCycledValue\">{$lang['strcancycle']}</label></th>\n"; - echo "<td class=\"data1\"><input type=\"checkbox\" id=\"formCycledValue\" name=\"formCycledValue\" ", - ( isset($_POST['formCycledValue']) ? ' checked="checked"' : ''), " /></td></tr>\n"; - } + echo "<tr><th class=\"data left\">{$lang['strcachevalue']}</th>\n"; + echo "<td class=\"data1\"><input name=\"formCacheValue\" size=\"5\" value=\"", + htmlspecialchars($sequence->fields['cache_value']), "\" /></td></tr>\n"; + + echo "<tr><th class=\"data left\"><label for=\"formCycledValue\">{$lang['strcancycle']}</label></th>\n"; + echo "<td class=\"data1\"><input type=\"checkbox\" id=\"formCycledValue\" name=\"formCycledValue\" ", + ( isset($_POST['formCycledValue']) ? ' checked="checked"' : ''), " /></td></tr>\n"; echo "</table>\n"; echo "<p><input type=\"hidden\" name=\"action\" value=\"alter\" />\n"; @@ -548,6 +574,9 @@ case 'confirm_drop': doDrop(true); break; + case 'restart': + doRestart(); + break; case 'reset': doReset(); break; diff --git a/tests/selenium/src/15-sequence.php b/tests/selenium/src/15-sequence.php index 918bcc30..731bd21f 100644 --- a/tests/selenium/src/15-sequence.php +++ b/tests/selenium/src/15-sequence.php @@ -33,12 +33,16 @@ $t->assertText("//p[@class='message']", $lang['strsequencecreated']); $t->clickAndWait('link=testcase_seq'); $t->assertText("//tr/th[text()='{$lang['strname']}' and @class='data']/../../tr/td[1]", 'testcase_seq'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '1'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[3]", '2'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[4]", '100'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[5]", '1'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[6]", '1'); - $t->assertText("//tr/td[text()='testcase_seq']/../td[8]", $lang['stryes']); + $i=2; + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1'); + if ($data->hasAlterSequenceStart()) + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '2'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '100'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1'); + $i++; // we ignore log_count + $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i ."]", $lang['stryes']); /** 2 **/ $t->addComment('2. increment, reset sequence and set value'); @@ -46,13 +50,15 @@ $t->type('nextvalue', '2'); $t->clickAndWait('setval'); $t->assertText("//p[@class='message']", $lang['strsequencesetval']); - $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '2'); + if ($data->hasAlterSequenceStart()) $i = 3; + else $i = 2; + $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '2'); $t->clickAndWait("link={$lang['strnextval']}"); $t->assertText("//p[@class='message']", $lang['strsequencenextval']); - $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '4'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '4'); $t->clickAndWait("link={$lang['strreset']}"); $t->assertText("//p[@class='message']", $lang['strsequencereset']); - $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '1'); + $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '1'); /** 3 **/ $t->addComment('3. alter sequence'); @@ -67,28 +73,31 @@ if ($data->hasAlterSequenceSchema()) $t->select('newschema', 'label=test_schema'); $t->type('comment', 'test comment on testcase_renamed_seq'); - if ($data->hasAlterSequenceProps()) { - $t->type('formStartValue', 20); - $t->type('formIncrement', 3); - $t->type('formMaxValue', 104); - $t->type('formMinValue', 5); - $t->type('formCacheValue', 6); - $t->uncheck('formCycledValue'); - } + if ($data->hasAlterSequenceStart()) + $t->type('formStartValue', 10); + $t->type('formRestartValue', 20); + $t->type('formIncrement', 3); + $t->type('formMaxValue', 104); + $t->type('formMinValue', 5); + $t->type('formCacheValue', 6); + $t->uncheck('formCycledValue'); $t->clickAndWait('alter'); $t->assertText("//p[@class='message']", $lang['strsequencealtered']); if ($data->hasAlterSequenceSchema()) $t->assertText("//div[@class='trail']/descendant::a[@title='{$lang['strschema']}']/span[@class='label']", 'test_schema'); $t->assertText("//p[@class='comment']", 'test comment on testcase_renamed_seq'); $t->assertText("//tr/th[text()='{$lang['strname']}' and @class='data']/../../tr/td[1]", 'testcase_renamed_seq'); - if ($data->hasAlterSequenceProps()) { - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[2]", '20'); - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[3]", '3'); - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[4]", '104'); - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[5]", '5'); - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[6]", '6'); - $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[8]", $lang['strno']); - } + $i = 2; + if ($data->hasAlterSequenceStart()) + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '10'); + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '20'); + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '3'); + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '104'); + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '5'); + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '6'); + $i++; // we ignore log_count + $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", $lang['strno']); + if ($data->hasAlterSequenceSchema()) $t->clickAndWait("//div[@class='trail']/descendant::a[@title='{$lang['strschema']}']/span[@class='label' and text()='test_schema']"); else |