1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
<?php
$test_title = 'Constraint tests';
if (isset($_GET['run'])) {
global $lang;
require('../config.test.php');
require('../testBuilder.class.php');
/*
* 1/ Add 2 Foreign Keys
* 2/ Add check constraint
* 3/ Add unique key
* 4/ Drop PK before creating it again
* 5/ Add primary key
* 6/ Drop FK
* 7/ Drop unique
* 8/ Drop check
*/
$t = new TestBuilder($test_title,
'Create and drop constraints...'
);
$t->login($admin_user, $admin_user_pass);
/** 1 **/
$t->addComment('1. Add 2 Foreign Keys');
$t->addComment('1.1. Add 1st Foreign Keys');
$t->clickAndWait("link={$lang['strdatabases']}");
$t->clickAndWait("link={$testdb}");
$t->clickAndWait("link={$lang['strschemas']}");
$t->clickAndWait('link=public');
$t->clickAndWait("link={$lang['strtables']}");
$t->clickAndWait('link=student');
$t->clickAndWait("link={$lang['strconstraints']}");
$t->clickAndWait("link={$lang['straddfk']}");
$t->type('name', 'student_id_promo_fk');
$t->addSelection('TableColumnList','label=id_promo');
$t->click('add');
$t->select('target', 'label=test_schema.promo');
$t->clickAndWait("//input[@value='Add']");
$t->addSelection('TableColumnList', 'label=id');
$t->click('add');
$t->select('upd_action', 'label=CASCADE');
$t->select('del_action', 'label=RESTRICT');
$t->clickAndWait("//input[@value='Add']");
$t->assertText("//p[@class='message']", $lang['strfkadded']);
/** 1' **/
$t->addComment('1.2. Add 2nd Foreign Keys');
$t->clickAndWait("link={$lang['straddfk']}");
$t->type('name', 'fk_to_drop');
$t->addSelection('TableColumnList', 'label=id_promo');
$t->click('add');
$t->select('target','label=test_schema.promo');
$t->clickAndWait("//input[@value='Add']");
$t->addSelection('TableColumnList', 'label=id');
$t->click('add');
$t->select('upd_action', 'label=CASCADE');
$t->select('del_action', 'label=RESTRICT');
$t->clickAndWait("//input[@value='Add']");
$t->assertText("//p[@class='message']", $lang['strfkadded']);
/* 2 */
$t->addComment('2. Add check constraint');
$t->clickAndWait("link={$lang['straddcheck']}");
$t->type('name', 'check_to_drop');
$t->type('definition', 'extract(year from birthday) < 2000');
$t->clickAndWait('ok');
$t->assertText("//p[@class='message']", $lang['strcheckadded']);
/* 3 */
$t->addComment('3. Add unique key');
$t->clickAndWait("link={$lang['stradduniq']}");
$t->type('name', 'unique_to_drop');
$t->addSelection('TableColumnList', 'label=name');
$t->click('add');
$t->clickAndWait("//input[@value='{$lang['stradd']}']");
$t->assertText("//p[@class='message']", $lang['struniqadded']);
/* 4 */
$t->addComment('4. Drop PK before creating it again');
$t->clickAndWait("//tr/td/pre[text()='PRIMARY KEY (id)']/../../td/a[text()='{$lang['strdrop']}']");
$t->clickAndWait('drop');
$t->assertText("//p[@class='message']", $lang['strconstraintdropped']);
/* 5 */
$t->addComment('5. Add primary key');
$t->clickAndWait("link={$lang['straddpk']}");
$t->type('name', 'student_pk');
$t->addSelection('TableColumnList', 'label=id');
$t->click('add');
$t->clickAndWait("//input[@value='Add']");
$t->assertText("//p[@class='message']", $lang['strpkadded']);
/* 6 */
$t->addComment('6. Drop FK');
$t->clickAndWait("//tr/td[text()='fk_to_drop']/../td/a[text()='{$lang['strdrop']}']");
$t->clickAndWait('drop');
$t->assertText("//p[@class='message']", $lang['strconstraintdropped']);
/* 7 */
$t->addComment('7. Drop unique');
$t->clickAndWait("//tr/td[text()='unique_to_drop']/../td/a[text()='{$lang['strdrop']}']");
$t->clickAndWait('drop');
$t->assertText("//p[@class='message']", $lang['strconstraintdropped']);
/* 8 */
$t->addComment('8. Drop check');
$t->clickAndWait("//tr/td[text()='check_to_drop']/../td/a[text()='{$lang['strdrop']}']");
$t->clickAndWait('drop');
$t->assertText("//p[@class='message']", $lang['strconstraintdropped']);
$t->logout();
unset($t);
}
?>
|