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