diff --git a/tests/sqlite.html b/tests/sqlite.html
index f225000b..2939d306 100644
--- a/tests/sqlite.html
+++ b/tests/sqlite.html
@@ -8,7 +8,7 @@
-| SQLite |
+| Login |
| open | /adminer/sqlite.php | |
| select | name=lang | label=English |
@@ -24,32 +24,210 @@
| type | name=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 | (//input[@value='Save'])[2] | |
+
+
+
+| Create table |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite | |
+| clickAndWait | link=Create table | |
+| type | name | interprets |
+| type | fields[1][field] | id |
+| select | fields[1][type] | label=integer |
+| click | //input[@name='auto_increment_col' and @value='1'] | |
+| type | fields[1.1][field] | name |
+| select | fields[1.1][type] | label=text |
+| type | fields[1.1][length] | 50 |
+| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Table has been created. | |
-| click | link=New item | |
-| type | name=fields[name] | Michael Jackson |
-| click | css=input[type="submit"] | |
+
+
+
+| Create index |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&table=interprets | |
+| clickAndWait | link=Alter indexes | |
+| select | indexes[2][type] | label=PRIMARY |
+| select | indexes[2][columns][1] | label=name |
+| verifyValue | name=indexes[2][name] | interprets_name |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | has more than one primary key | |
+| select | indexes[2][type] | label=INDEX |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | Indexes have been altered. | |
+
+
+
+| Create table 2 |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&table=interprets | |
+| clickAndWait | link=Create table | |
+| type | name | albums |
+| type | fields[1][field] | id |
+| select | fields[1][type] | label=integer |
+| click | //input[@name='auto_increment_col' and @value='1'] | |
+| type | fields[1.1][field] | interpret |
+| select | fields[1.1][type] | label=integer |
+| type | fields[1.11][field] | title |
+| select | fields[1.11][type] | label=text |
+| type | fields[1.11][length] | 50 |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | Table has been created. | |
+
+
+
+| Foreign key |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&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/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&table=interprets | |
+| clickAndWait | link=Alter table | |
+| click | add[2] | |
+| type | fields[2.1][field] | albums |
+| select | fields[2.1][type] | label=integer |
+| 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/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&trigger=albums | |
+| select | Timing | label=AFTER |
+| runScript | document.querySelector('[name="Statement"]').value = 'BEGIN\nUPDATE interprets SET albums = albums + 1 WHERE id = NEW.interpret';\nEND | |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | Trigger has been created. | |
+
+
+
+| Check constraints |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&table=albums | |
+| click | link=Create 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 failed | |
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&check=albums&name=interpret+%3E+0 | |
+| verifyTextPresent | interpret > 0 | |
+| chooseOkOnNextConfirmation | Drop interpret > 0? | |
+| click | name=drop | |
+| verifyTextPresent | Check has been dropped. | |
+
+
+
+| Create view |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&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. | |
+
+
+
+| Insert |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&edit=interprets | |
+| type | fields[name] | Michael Jackson |
+| clickAndWait | //input[@value='Save'] | |
| 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 | (//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 | |
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&edit=albums | |
+| type | fields[interpret] | 1 |
+| type | fields[title] | Dangerous |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | Item 1 has been inserted. | |
+
+
+
+| Clone |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&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/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&select=albums | |
+| clickAndWait | link=Edit | |
+| clickAndWait | //input[@value='Execute'] | |
+| click | link=Explain | |
+| verifyTextPresent | SCAN albums | |
+
+
+
+| Reference |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&select=albums | |
+| clickAndWait | link=1 | |
+| verifyTextPresent | Michael Jackson | |
+
+
+
+| Update |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&edit=albums&where%5Bid%5D=2 | |
+| type | fields[title] | Black or White |
+| clickAndWait | //input[@value='Save'] | |
+| verifyTextPresent | Item has been updated. | |
+
+
+
+| Delete |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&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/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&select=albums | |
+| click | all | |
+| waitForChecked | all | |
+| chooseOkOnNextConfirmation | Are you sure? | |
+| click | delete | |
+| verifyTextPresent | No rows. | |
+
+
+
+| Export |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&db=adminer_test.sqlite&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" | |
@@ -64,7 +242,7 @@
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | normal + 200 | |
| click | link=Alter indexes | |
-| select | name=indexes[2][columns][1] | label=stored |
+| select | name=indexes[1][columns][1] | label=stored |
| clickAndWait | //input[@value='Save'] | |
| verifyTextPresent | Indexes have been altered. | |
| click | link=New item | |
@@ -74,6 +252,13 @@
| verifyTextPresent | 220 | |
+
+| Variables |
+
+| open | /adminer/sqlite.php?sqlite=&username=ODBC&variables= | |
+| verifyTextPresent | integrity_check | |
+
+