Skip to content

Commit 7bb69d0

Browse files
committed
add basic test
add basic test for pdo odbc connection. fixed the way to get credentials and dsn fixed skipif fixed var dsn
1 parent 797ceec commit 7bb69d0

File tree

2 files changed

+131
-0
lines changed

2 files changed

+131
-0
lines changed

ext/odbc/tests/odbc_connect_001.phpt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
--TEST--
2+
odbc_connect(): Basic test for odbc_connect(). (When not using a DSN alias)
3+
--EXTENSIONS--
4+
odbc
5+
--SKIPIF--
6+
<?php
7+
include 'config.inc';
8+
if (strpos($dsn, '=') === false) {
9+
die('skip uses a DSN alias');
10+
}
11+
include 'skipif.inc';
12+
?>
13+
--FILE--
14+
<?php
15+
16+
include 'config.inc';
17+
$dsn = str_replace(";uid={$user};pwd={$pass}", '', $dsn);
18+
19+
echo "dsn without credentials / correct user / correct password\n";
20+
$conn = odbc_connect($dsn, $user, $pass);
21+
echo $conn ? "Connected.\n\n" : "";
22+
if ($conn) odbc_close($conn);
23+
24+
echo "dsn with correct user / incorrect user / correct password\n";
25+
$conn = odbc_connect("{$dsn};uid={$user}", 'hoge', $pass);
26+
echo $conn ? "Connected.\n\n" : "";
27+
if ($conn) odbc_close($conn);
28+
29+
echo "dsn with correct password / correct user / incorrect password\n";
30+
$conn = odbc_connect("{$dsn};PWD={$pass}", $user, 'fuga');
31+
echo $conn ? "Connected.\n\n" : "";
32+
if ($conn) odbc_close($conn);
33+
34+
echo "dsn with correct credentials / incorrect user / incorrect password\n";
35+
$conn = odbc_connect("{$dsn};Uid={$user};pwD={$pass}", 'hoge', 'fuga');
36+
echo $conn ? "Connected.\n" : "";
37+
if ($conn) odbc_close($conn);
38+
?>
39+
--EXPECT--
40+
dsn without credentials / correct user / correct password
41+
Connected.
42+
43+
dsn with correct user / incorrect user / correct password
44+
Connected.
45+
46+
dsn with correct password / correct user / incorrect password
47+
Connected.
48+
49+
dsn with correct credentials / incorrect user / incorrect password
50+
Connected.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
--TEST--
2+
Basic test for connection. (When not using a DSN alias)
3+
--EXTENSIONS--
4+
pdo_odbc
5+
--SKIPIF--
6+
<?php
7+
require 'ext/pdo/tests/pdo_test.inc';
8+
PDOTest::skip();
9+
$dsn = getenv('PDO_ODBC_TEST_DSN');
10+
if (!$dsn || strpos($dsn, '=') === false) {
11+
die('skip');
12+
}
13+
?>
14+
--FILE--
15+
<?php
16+
$dsnWithCredentials = getenv('PDO_ODBC_TEST_DSN');
17+
$user = getenv('PDO_ODBC_TEST_USER');
18+
$password = getenv('PDO_ODBC_TEST_PASS');
19+
20+
$dsn = str_replace(";uid={$user};pwd={$password}", '', $dsnWithCredentials);
21+
22+
echo "dsn without credentials / correct user / correct password\n";
23+
try {
24+
$db = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
25+
echo "Connected.\n\n";
26+
$db = null;
27+
} catch (PDOException $e) {
28+
echo $e->getMessage()."\n";
29+
}
30+
31+
echo "dsn with credentials / no user / no password\n";
32+
try {
33+
$db = new PDO("{$dsn};uid={$user};pwd={$password}", null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
34+
echo "Connected.\n\n";
35+
$db = null;
36+
} catch (PDOException $e) {
37+
echo $e->getMessage()."\n";
38+
}
39+
40+
echo "dsn with correct user / incorrect user / correct password\n";
41+
try {
42+
$db = new PDO("{$dsn};UID={$user}", 'hoge', $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
43+
echo "Connected.\n\n";
44+
$db = null;
45+
} catch (PDOException $e) {
46+
echo $e->getMessage()."\n";
47+
}
48+
49+
echo "dsn with correct password / correct user / incorrect password\n";
50+
try {
51+
$db = new PDO("{$dsn};PWD={$password}", $user, 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
52+
echo "Connected.\n\n";
53+
$db = null;
54+
} catch (PDOException $e) {
55+
echo $e->getMessage()."\n";
56+
}
57+
58+
echo "dsn with correct credentials / incorrect user / incorrect password\n";
59+
try {
60+
$db = new PDO("{$dsn};Uid={$user};Pwd={$password}", 'hoge', 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
61+
echo "Connected.\n";
62+
$db = null;
63+
} catch (PDOException $e) {
64+
echo $e->getMessage()."\n";
65+
}
66+
?>
67+
--EXPECT--
68+
dsn without credentials / correct user / correct password
69+
Connected.
70+
71+
dsn with credentials / no user / no password
72+
Connected.
73+
74+
dsn with correct user / incorrect user / correct password
75+
Connected.
76+
77+
dsn with correct password / correct user / incorrect password
78+
Connected.
79+
80+
dsn with correct credentials / incorrect user / incorrect password
81+
Connected.

0 commit comments

Comments
 (0)