svn: /pear/packages/MDB2/trunk/tests/ MDB2_usage_testcase.php
| From: | Lorenzo Alberton | 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() {