svn: /pear/packages/MDB2/trunk/tests/ MDB2_usage_testcase.php

From: Date: Sun, 27 Dec 2009 23:39:10 +0000
Subject: svn: /pear/packages/MDB2/trunk/tests/ MDB2_usage_testcase.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-58387@lists.php.net to get a copy of this message
quipo Sun, 27 Dec 2009 23:39:10 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=292706 Log: fixed bug #16727: quote(url, 'clob')) fetches URL even if lob_allow_url_include option is false Bug: http://pear.php.net/bugs/16727 (unknown) Changed paths: U pear/packages/MDB2/trunk/tests/MDB2_usage_testcase.php Modified: pear/packages/MDB2/trunk/tests/MDB2_usage_testcase.php =================================================================== --- pear/packages/MDB2/trunk/tests/MDB2_usage_testcase.php 2009-12-27 23:37:41 UTC (rev 292705) +++ pear/packages/MDB2/trunk/tests/MDB2_usage_testcase.php 2009-12-27 23:39:10 UTC (rev 292706) @@ -1415,6 +1415,8 @@ $this->markTestSkipped('LOBs not supported'); } + $this->db->setOption('lob_allow_url_include', true); + $query = 'INSERT INTO files (ID, document, picture) VALUES (1, :document, :picture)'; $stmt = $this->db->prepare($query, array('document' => 'clob', 'picture' => 'blob'), MDB2_PREPARE_MANIP); @@ -1514,6 +1516,69 @@ } /** + * Test for lob storage from and to files + */ + function testQuoteLOBFilesNoUrlInclude() { + if (!$this->supported('LOBs')) { + $this->markTestSkipped('LOBs not supported'); + } + + $this->db->setOption('lob_allow_url_include', false); + + $character_data_file = 'character_data'; + $character_data_file_tmp = 'file://'.$character_data_file; + $file = fopen($character_data_file, 'w'); + $this->assertTrue(((bool)$file), 'Error creating clob file to read from'); + $character_data = ''; + for ($code = 65; $code <= 80; $code++) { + $character_data.= chr($code); + } + $this->assertTrue((fwrite($file, $character_data, strlen($character_data)) == strlen($character_data)), 'Error creating clob file to read from'); + fclose($file); + chmod($character_data_file, 0777); + + $expected = ($this->dsn['phptype'] == 'oci8') ? 'EMPTY_CLOB()' : "'".$character_data_file_tmp."'"; + $quoted = $this->db->quote($character_data_file_tmp, 'clob'); + $this->assertEquals($expected, $quoted); + + $expected = ($this->dsn['phptype'] == 'oci8') ? 'EMPTY_BLOB()' : "'".$character_data_file_tmp."'"; + $quoted = $this->db->quote($character_data_file_tmp, 'blob'); + $this->assertEquals($expected, $quoted); + } + + /** + * Test for lob storage from and to files + */ + function testQuoteLOBFilesUrlInclude() { + if (!$this->supported('LOBs')) { + $this->markTestSkipped('LOBs not supported'); + } + + $this->db->setOption('lob_allow_url_include', true); + + $character_data_file = 'character_data'; + $character_data_file_tmp = 'file://'.$character_data_file; + $file = fopen($character_data_file, 'w'); + $this->assertTrue(((bool)$file), 'Error creating clob file to read from'); + $character_data = ''; + for ($code = 65; $code <= 80; $code++) { + $character_data.= chr($code); + } + $this->assertTrue((fwrite($file, $character_data, strlen($character_data)) == strlen($character_data)), 'Error creating clob file to read from'); + fclose($file); + chmod($character_data_file, 0777); + + + $expected = ($this->dsn['phptype'] == 'oci8') ? 'EMPTY_CLOB()' : "'".$character_data."'"; + $quoted = $this->db->quote($character_data_file_tmp, 'clob'); + $this->assertEquals($expected, $quoted); + + $expected = ($this->dsn['phptype'] == 'oci8') ? 'EMPTY_BLOB()' : "'".$character_data."'"; + $quoted = $this->db->quote($character_data_file_tmp, 'blob'); + $this->assertEquals($expected, $quoted); + } + + /** * Test handling of lob nulls */ function testLOBNulls() {

« previous php.pear.cvs (#58387) next »