Annotation of embedaddon/php/ext/pdo/tests/bug_44409.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: PDO Common: Bug #44409 (PDO::FETCH_SERIALIZE calls __construct())
                      3: --SKIPIF--
                      4: <?php # vim:ft=php
                      5: if (!extension_loaded('pdo')) die('skip');
                      6: $dir = getenv('REDIR_TEST_DIR');
                      7: if (false == $dir) die('skip no driver');
                      8: require_once $dir . 'pdo_test.inc';
                      9: PDOTest::skip();
                     10: ?>
                     11: --FILE--
                     12: <?php
                     13: if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
                     14: require getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
                     15: $db = PDOTest::factory();
                     16: 
                     17: $db->exec("CREATE TABLE test (dat varchar(100))");
                     18: $db->exec("INSERT INTO test (dat) VALUES ('Data from DB')");
                     19: 
                     20: class bug44409 implements Serializable
                     21: {
                     22:        public function __construct() 
                     23:        {
                     24:                printf("Method called: %s()\n", __METHOD__); 
                     25:        }       
                     26: 
                     27:        public function serialize()
                     28:        {
                     29:                return "any data from serizalize()"; 
                     30:        }
                     31:        
                     32:        public function unserialize($dat)
                     33:        {
                     34:                printf("Method called: %s(%s)\n", __METHOD__, var_export($dat, true));
                     35:        }
                     36: }
                     37: 
                     38: $stmt = $db->query("SELECT * FROM test");
                     39: 
                     40: print_r($stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_SERIALIZE, "bug44409"));
                     41: 
                     42: ?>
                     43: --EXPECT--
                     44: Method called: bug44409::unserialize('Data from DB')
                     45: Array
                     46: (
                     47:     [0] => bug44409 Object
                     48:         (
                     49:         )
                     50: 
                     51: )

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