| Login | ||
| open | /coverage.php?coverage=0 | |
| open | /adminer/?username=ODBC | |
| select | name=lang | label=English | 
| clickAndWait | css=#lang > input[type="submit"] | |
| verifyTextPresent | Logged as | |
| clickAndWait | link=SQL command | |
| open | /adminer/?username=ODBC&sql=DROP+DATABASE+IF+EXISTS+adminer_test | |
| clickAndWait | //input[@value='Execute'] | |
| verifyTextPresent | Query executed OK | |
| Create database | ||
| open | /adminer/?username=ODBC | |
| clickAndWait | link=Create database | |
| type | name | adminer_test | 
| select | collation | label=utf8_general_ci | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Database has been created. | |
| Create table | ||
| open | /adminer/?username=ODBC&db=adminer_test | |
| clickAndWait | link=Create table | |
| type | name | interprets | 
| select | Engine | label=InnoDB | 
| type | fields[1][field] | id | 
| select | fields[1][type] | label=int | 
| click | //input[@name='auto_increment_col' and @value='1'] | |
| type | fields[1.1][field] | name | 
| select | fields[1.1][type] | label=varchar | 
| type | fields[1.1][length] | 50 | 
| check | name=comments | |
| type | fields[1.1][comment] | Interpret | 
| type | Comment | Interprets | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been created. | |
| Create index | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=interprets | |
| clickAndWait | link=Alter indexes | |
| select | indexes[2][type] | label=PRIMARY | 
| select | indexes[2][columns][1] | label=name | 
| verifyValue | name=indexes[2][name] | name | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Multiple primary key defined | |
| select | indexes[2][type] | label=INDEX | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Indexes have been altered. | |
| Partitioning | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=interprets | |
| clickAndWait | link=Alter table | |
| select | partition_by | label=HASH | 
| click | link=Partition by | |
| type | partition | id | 
| type | partitions | 2 | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been altered. | |
| clickAndWait | link=Alter table | |
| select | partition_by | label=RANGE | 
| type | partition_values[] | 10 | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been altered. | |
| clickAndWait | link=Alter table | |
| select | partition_by | label= | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been altered. | |
| Create table 2 | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=interprets&lang=en | |
| clickAndWait | link=Create table | |
| type | name | albums | 
| type | fields[1][field] | id | 
| select | fields[1][type] | label=int | 
| click | //input[@name='auto_increment_col' and @value='1'] | |
| type | fields[1.1][field] | interpret | 
| select | fields[1.1][type] | label=int | 
| type | fields[1.11][field] | title | 
| select | fields[1.11][type] | label=varchar | 
| type | fields[1.11][length] | 50 | 
| check | name=comments | |
| type | fields[1.1][comment] | Interpret | 
| type | fields[1.11][comment] | Album | 
| type | Comment | Albums | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been created. | |
| Foreign key | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=albums | |
| clickAndWait | link=Add foreign key | |
| selectAndWait | table | label=interprets | 
| select | source[0] | label=interpret | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Foreign key has been created. | |
| Alter table | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=interprets | |
| clickAndWait | link=Alter table | |
| click | add[2] | |
| type | fields[2.1][field] | albums | 
| select | fields[2.1][type] | label=int | 
| type | fields[2.1][length] | |
| check | name=defaults | |
| type | name=fields[2.1][default] | 0 | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been altered. | |
| Create trigger | ||
| open | /adminer/?username=ODBC&db=adminer_test&trigger=albums | |
| select | Timing | label=AFTER | 
| type | Statement | UPDATE interprets SET albums = albums + 1 WHERE id = NEW.interpret | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Trigger has been created. | |
| Create view | ||
| open | /adminer/?username=ODBC&db=adminer_test&view= | |
| type | select | SELECT albums.id, albums.title, interprets.name FROM albums LEFT JOIN interprets ON albums.interpret = interprets.id | 
| type | name | albums_interprets | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | View has been created. | |
| Insert | ||
| open | /adminer/?username=ODBC&db=adminer_test&edit=interprets | |
| type | fields[name] | Michael Jackson | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item 1 has been inserted. | |
| open | /adminer/?username=ODBC&db=adminer_test&edit=albums | |
| type | fields[interpret] | 1 | 
| type | fields[title] | Dangerous | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item 1 has been inserted. | |
| Clone | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | check[] | |
| clickAndWait | clone | |
| type | fields[title] | Black and White | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item 2 has been inserted. | |
| Explain | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| clickAndWait | link=Edit | |
| clickAndWait | //input[@value='Execute'] | |
| click | link=Explain | |
| verifyTextPresent | possible_keys | |
| Reference | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| clickAndWait | link=1 | |
| verifyTextPresent | Michael Jackson | |
| Update | ||
| open | /adminer/?username=ODBC&db=adminer_test&edit=albums&where%5Bid%5D=2 | |
| type | fields[title] | Black or White | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item has been updated. | |
| Delete | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | //input[@name='check[]' and @value='where%5Bid%5D=2'] | |
| waitForChecked | //input[@name='check[]' and @value='where%5Bid%5D=2'] | |
| chooseOkOnNextConfirmation | Are you sure? | |
| click | delete | |
| verifyTextPresent | 1 item has been affected. | |
| Truncate | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | all | |
| waitForChecked | all | |
| chooseOkOnNextConfirmation | Are you sure? | |
| click | delete | |
| verifyTextPresent | No rows. | |
| Privileges | ||
| open | /adminer/?username=ODBC&user= | |
| type | user | adminer_test | 
| type | objects[0] | adminer_test.* | 
| click | grants[0][ALTER] | |
| click | grants[0][CREATE] | |
| click | //input[@name='grants[0][CREATE VIEW]'] | |
| click | grants[0][DELETE] | |
| click | grants[0][DROP] | |
| click | grants[0][INDEX] | |
| click | grants[0][INSERT] | |
| click | grants[0][REFERENCES] | |
| click | grants[0][SELECT] | |
| click | //input[@name='grants[0][SHOW VIEW]'] | |
| click | grants[0][UPDATE] | |
| click | //input[@name='grants[0][CREATE TEMPORARY TABLES]'] | |
| click | //input[@name='grants[0][LOCK TABLES]'] | |
| click | //input[@name='grants[0][CREATE ROUTINE]'] | |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | User has been created. | |
| clickAndWait | //div[@id='content']/form/table/tbody/tr[td[1]='adminer_test']/td[3]/a | |
| chooseOkOnNextConfirmation | Drop adminer_test@localhost? | |
| click | drop | |
| verifyTextPresent | User has been dropped. | |
| Process list | ||
| open | /adminer/?username=ODBC&processlist= | |
| verifyTextPresent | SHOW FULL PROCESSLIST | |
| Export | ||
| open | /adminer/?username=ODBC&db=adminer_test&dump= | |
| click | output | |
| click | format | |
| select | table_style | label=DROP+CREATE | 
| select | data_style | label=INSERT | 
| clickAndWait | //input[@value='Export'] | |
| verifyTextPresent | CREATE TABLE `interprets` | |
| verifyTextPresent | CREATE TRIGGER `albums_ai` | |
| verifyTextPresent | INSERT INTO `interprets` | |
| verifyTextPresent | VIEW `albums_interprets` | |
| Events | ||
| open | /adminer/?username=ODBC&db=adminer_test&event= | |
| type | EVENT_NAME | no_albums | 
| select | INTERVAL_FIELD | label=DAY | 
| type | INTERVAL_VALUE | 1 | 
| click | ON_COMPLETION | |
| type | EVENT_DEFINITION | DELETE FROM albums WHERE interprets = 0 | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Event has been created. | |
| clickAndWait | link=Alter | |
| chooseOkOnNextConfirmation | Drop no_albums? | |
| click | drop | |
| verifyTextPresent | Event has been dropped. | |
| Procedures | ||
| open | /adminer/?username=ODBC&db=adminer_test&procedure= | |
| clickAndWait | add[0] | |
| type | fields[1][field] | interpret_name | 
| select | fields[1][type] | label=varchar | 
| type | fields[1][length] | 50 | 
| type | fields[1.1][field] | album_title | 
| select | fields[1.1][type] | label=varchar | 
| type | fields[1.1][length] | 50 | 
| type | definition | BEGIN SELECT id INTO @interpret FROM interprets WHERE name = interpret_name; IF @interpret IS NULL THEN INSERT INTO interprets (name) VALUES (interpret_name); SET @interpret = LAST_INSERT_ID(); END IF; INSERT INTO albums (interpret, title) VALUES (@interpret, album_title); END | 
| type | name | insert_album | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Routine has been created. | |
| clickAndWait | link=insert_album | |
| type | fields[interpret_name] | Michael Jackson | 
| type | fields[album_title] | Dangerous | 
| clickAndWait | //input[@value='Call'] | |
| assertTextPresent | Routine has been called, 1 row affected. | |
| clickAndWait | link=adminer_test | |
| clickAndWait | link=Alter | |
| chooseOkOnNextConfirmation | Drop insert_album? | |
| click | drop | |
| verifyTextPresent | Routine has been dropped. | |
| Variables | ||
| open | /adminer/?username=ODBC&variables= | |
| verifyTextPresent | basedir | |
| History | ||
| open | /adminer/?username=ODBC&sql= | |
| verifyTextPresent | DROP DATABASE IF EXISTS adminer_test | |
| Warnings | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | xpath=(//a[contains(text(),'=')])[1] | |
| type | name=where[0][val] | 1.2.3 | 
| submit | id=form | |
| click | link=Warnings | |
| verifyText | //div[@id='warnings']/div/table/tbody/tr/td[3] | Truncated incorrect DOUBLE value: '1.2.3' | 
| Editor | ||
| open | /editor/example.php?username=admin | |
| select | name=lang | label=English | 
| clickAndWait | css=#lang > input[type="submit"] | |
| clickAndWait | link=Interprets | |
| clickAndWait | link=New item | |
| type | fields[name] | Michael Jackson | 
| clickAndWait | //input[@value='Save'] | |
| clickAndWait | //div[@id='content']/form[2]/table/tbody/tr[1]/td[3]/a | |
| clickAndWait | link=New item | |
| type | fields[title] | Dangerous | 
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item 4 has been inserted. | |
| clickAndWait | logout | |
| SQLite | ||
| open | /adminer/sqlite.php | |
| select | name=auth[driver] | label=SQLite 3 | 
| type | id=username | admin | 
| type | name=auth[password] | |
| click | css=input[type="submit"] | |
| click | link=Create database | |
| type | id=name | adminer_test | 
| click | css=input[type="submit"] | |
| verifyTextPresent | Please use one of the extensions | |
| type | id=name | adminer_test.sqlite | 
| click | css=input[type="submit"] | |
| verifyTextPresent | Database has been created. | |
| click | link=Create table | |
| type | name=name | interprets | 
| click | css=label.block > input[name="auto_increment_col"] | |
| type | name=fields[1.1][field] | name | 
| select | name=fields[1.1][type] | label=text | 
| click | xpath=(//input[@value='Save'])[2] | |
| verifyTextPresent | Table has been created. | |
| click | link=New item | |
| type | name=fields[name] | Michael Jackson | 
| click | css=input[type="submit"] | |
| verifyTextPresent | Item 1 has been inserted. | |
| click | link=Create table | |
| type | name=name | albums | 
| click | css=label.block > input[name="auto_increment_col"] | |
| type | name=fields[1.1][field] | interpret | 
| select | name=fields[1.1][on_delete] | label=CASCADE | 
| type | name=fields[1.11][field] | title | 
| select | name=fields[1.11][type] | label=text | 
| click | xpath=(//input[@value='Save'])[2] | |
| verifyTextPresent | interprets(id) | |
| click | link=New item | |
| type | name=fields[interpret] | 1 | 
| type | name=fields[title] | Dangerous | 
| click | css=input[type="submit"] | |
| click | link=1 | |
| verifyTextPresent | Select: interprets | |
| click | link=adminer_test.sqlite | |
| click | link=Alter database | |
| chooseOkOnNextConfirmation | Drop adminer_test.sqlite? | |
| click | name=drop | |
| verifyTextPresent | Database has been dropped. | |
| click | id=logout | |
| verifyTextPresent | Thanks for using Adminer, consider donating. | |
| Logout | ||
| open | /adminer/?username=ODBC | |
| clickAndWait | logout | |
| verifyTextPresent | Logout successful. | |
| selectAndWait | //select[@name='lang'] | label=Čeština | 
| verifyTextPresent | Přihlásit se | |
| open | /coverage.php | |