Annotation of embedaddon/php/ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: MySQL PDO->__construct() - URI
                      3: --SKIPIF--
                      4: <?php
                      5: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
                      6: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
                      7: MySQLPDOTest::skip();
                      8: ?>
                      9: --FILE--
                     10: <?php
                     11:        require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
                     12: 
                     13:        try {
                     14: 
                     15:                if ($tmp = MySQLPDOTest::getTempDir()) {
                     16: 
                     17:                        $file = $tmp . DIRECTORY_SEPARATOR . 'pdomuri.tst';
                     18:                        $dsn = MySQLPDOTest::getDSN();
                     19:                        $user = PDO_MYSQL_TEST_USER;
                     20:                        $pass = PDO_MYSQL_TEST_PASS;
                     21:                        $uri = sprintf('uri:file:%s', $file);
                     22: 
                     23:                        if ($fp = @fopen($file, 'w')) {
                     24:                                // ok, great we can create a file with a DSN in it
                     25:                                fwrite($fp, $dsn);
                     26:                                fclose($fp);
                     27:                                clearstatcache();
                     28:                                assert(file_exists($file));
                     29:                                try {
                     30:                                        $db = new PDO($uri, $user, $pass);
                     31:                                } catch (PDOException $e) {
                     32:                                        printf("[002] URI=%s, DSN=%s, File=%s (%d bytes, '%s'), %s\n",
                     33:                                                $uri, $dsn,
                     34:                                                $file, filesize($file), file_get_contents($file),
                     35:                                                $e->getMessage());
                     36:                                }
                     37:                                unlink($file);
                     38:                        }
                     39: 
                     40:                        if ($fp = @fopen($file, 'w')) {
                     41:                                fwrite($fp, sprintf('mysql:dbname=letshopeinvalid;%s%s',
                     42:                                        chr(0), $dsn));
                     43:                                fclose($fp);
                     44:                                clearstatcache();
                     45:                                assert(file_exists($file));
                     46:                                try {
                     47:                                        $db = new PDO($uri, $user, $pass);
                     48:                                } catch (PDOException $e) {
                     49:                                        printf("[003] URI=%s, DSN=%s, File=%s (%d bytes, '%s'), chr(0) test, %s\n",
                     50:                                        $uri, $dsn,
                     51:                                        $file, filesize($file), file_get_contents($file),
                     52:                                        $e->getMessage());
                     53:                                }
                     54:                                unlink($file);
                     55:                        }
                     56: 
                     57:                }
                     58: 
                     59:                /* TODO: safe mode */
                     60: 
                     61:        } catch (PDOException $e) {
                     62:                printf("[001] %s, [%s] %s\n",
                     63:                        $e->getMessage(),
                     64:                        (is_object($db)) ? $db->errorCode() : 'n/a',
                     65:                        (is_object($db)) ? implode(' ', $db->errorInfo()) : 'n/a');
                     66:        }
                     67: 
                     68:        print "done!";
                     69: ?>
                     70: --EXPECTF--
                     71: Warning: PDO::__construct(%s
                     72: [002] URI=uri:file:%spdomuri.tst, DSN=mysql%sdbname=%s, File=%spdomuri.tst (%d bytes, 'mysql%sdbname=%s'), invalid data source URI
                     73: 
                     74: Warning: PDO::__construct(%s
                     75: [003] URI=uri:file:%spdomuri.tst, DSN=mysql%sdbname=%s, File=%spdomuri.tst (%d bytes, 'mysql%sdbname=letshopeinvalid%s'), chr(0) test, invalid data source URI
                     76: done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>