| Login | ||
| open | /coverage.php?coverage=0 | |
| open | /adminer/ | |
| select | name=lang | label=English |
| clickAndWait | css=#lang > input[type="submit"] | |
| type | id=username | ODBC |
| type | name=auth[password] | wrong |
| clickAndWait | //input[@value='Login'] | |
| verifyTextPresent | Access denied for user | |
| type | id=username | ODBC |
| type | name=auth[password] | ODBC |
| clickAndWait | //input[@value='Login'] | |
| 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=utf8mb4_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 |
| uncheck | name=comments | |
| clickAndWait | 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 | |
| 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] | |
| uncheck | name=defaults | |
| clickAndWait | 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 |
| runScript | document.querySelector('[name="Statement"]').value = 'UPDATE interprets SET albums = albums + 1 WHERE id = NEW.interpret' | |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Trigger has been created. | |
| Check constraints | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=albums | |
| click | link=Create check | |
| type | name=name | albums_interpret_check |
| runScript | document.querySelector('[name="clause"]').value = 'interpret > 0' | |
| click | //input[@value='Save'] | |
| verifyTextPresent | Check has been created. | |
| clickAndWait | link=New item | |
| type | fields[interpret] | 0 |
| click | //input[@value='Save'] | |
| verifyTextPresent | Check constraint 'albums_interpret_check' is violated. | |
| open | /adminer/?username=ODBC&db=adminer_test&check=albums&name=albums_interpret_check | |
| verifyTextPresent | (`interpret` > 0) | |
| chooseOkOnNextConfirmation | Drop albums_interpret_check? | |
| click | name=drop | |
| verifyTextPresent | Check has been dropped. | |
| Create view | ||
| open | /adminer/?username=ODBC&db=adminer_test&view= | |
| runScript | document.querySelector('[name="select"]').value = '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. | |
| Invalid table | ||
| open | /adminer/?username=ODBC&db=adminer_test&table=invalid | |
| verifyTextPresent | No tables. | |
| open | /adminer/?username=ODBC&db=adminer_test&create=invalid | |
| verifyTextPresent | No tables. | |
| open | /adminer/?username=ODBC&db=adminer_test&select=invalid | |
| verifyTextPresent | Unable to select the table: | |
| Schema | ||
| open | /adminer/?username=ODBC&db=adminer_test&schema= | |
| verifyTextPresent | Permanent link | |
| 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. | |
| Select | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | link=Search | |
| select | name=where[0][col] | label=title |
| type | name=where[0][val] | Dangerous |
| click | link=Sort | |
| select | name=order[0] | label=interpret |
| clickAndWait | xpath=//input[@value='Select'] | |
| verifyTextPresent | 1 row | |
| 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 | |
| runScript | document.querySelector('[name="EVENT_DEFINITION"]').value = '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 |
| runScript | document.querySelector('[name="definition"]').value = 'BEGIN\nSELECT id INTO @interpret FROM interprets WHERE name = interpret_name;\nIF @interpret IS NULL THEN\n INSERT INTO interprets (name) VALUES (interpret_name);\n SET @interpret = LAST_INSERT_ID();\nEND IF;\nINSERT INTO albums (interpret, title) VALUES (@interpret, album_title);\nEND' | |
| 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, | |
| clickAndWait | link=adminer_test | |
| clickAndWait | link=Alter | |
| chooseOkOnNextConfirmation | Drop insert_album? | |
| click | drop | |
| verifyTextPresent | Routine has been dropped. | |
| Generated columns | ||
| open | /adminer/?username=ODBC&db=adminer_test&create= | |
| type | name=name | generated |
| type | name=fields[1][field] | normal |
| type | name=fields[1.1][field] | virtual |
| select | name=fields[1.1][generated] | label=VIRTUAL |
| type | name=fields[1.1][default] | normal + 100 |
| type | name=fields[1.11][field] | stored |
| select | name=fields[1.11][generated] | label=STORED |
| type | name=fields[1.11][default] | normal + 200 |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | `normal` + 100 | |
| verifyTextPresent | `normal` + 200 | |
| click | link=Alter indexes | |
| select | name=indexes[1][columns][1] | label=virtual |
| select | name=indexes[1][columns][11] | label=stored |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Indexes have been altered. | |
| click | link=New item | |
| verifyTextNotPresent | virtual | |
| verifyTextNotPresent | stored | |
| type | name=fields[normal] | 20 |
| click | //input[@value='Save'] | |
| verifyTextPresent | 120 | |
| verifyTextPresent | 220 | |
| Variables | ||
| open | /adminer/?username=ODBC&variables= | |
| verifyTextPresent | basedir | |
| open | /adminer/?username=ODBC&status= | |
| verifyTextPresent | Uptime | |
| History | ||
| open | /adminer/?username=ODBC&sql= | |
| verifyTextPresent | DROP DATABASE IF EXISTS adminer_test | |
| Warnings | ||
| open | /adminer/?username=ODBC&db=adminer_test&select=albums | |
| click | //th[@id='th[interpret]']/span/a[2] | |
| 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 | |
| select | name=lang | label=English |
| clickAndWait | css=#lang > input[type="submit"] | |
| type | name=auth[username] | admin |
| click | //input[@value='Login'] | |
| clickAndWait | link=Interprets | |
| clickAndWait | link=New item | |
| type | fields[name] | Michael Jackson |
| clickAndWait | //input[@value='Save'] | |
| clickAndWait | link=Albums | |
| clickAndWait | link=New item | |
| type | fields[title] | Dangerous |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Item 4 has been inserted. | |
| clickAndWait | logout | |
| 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 | |