From 5a270e2d574ea6c3c31025acfe7af499141c6539 Mon Sep 17 00:00:00 2001 From: Jenny Tam Date: Fri, 8 Dec 2017 11:50:44 -0800 Subject: [PATCH] Applied changes to the tests based on review --- test/functional/sqlsrv/0020.phpt | 20 +++--- test/functional/sqlsrv/0065.phpt | 61 ++++++------------- test/functional/sqlsrv/MsCommon.inc | 8 +-- test/functional/sqlsrv/MsHelper.inc | 2 +- .../sqlsrv/sqlsrv_complex_query.phpt | 19 ++---- .../sqlsrv/sqlsrv_connect_encrypted_ksp.phpt | 2 +- ...qlsrv_connect_encrypted_ksp_encrypted.phpt | 2 +- .../sqlsrv/sqlsrv_param_output_variants.phpt | 4 +- ...srv_231_string_truncation_varchar_max.phpt | 4 +- 9 files changed, 40 insertions(+), 82 deletions(-) diff --git a/test/functional/sqlsrv/0020.phpt b/test/functional/sqlsrv/0020.phpt index e6e08096..ee36eb6c 100644 --- a/test/functional/sqlsrv/0020.phpt +++ b/test/functional/sqlsrv/0020.phpt @@ -10,10 +10,9 @@ require_once('MsCommon.inc'); function runTest($fieldType) { - prepareParams($params); - // change the input field type for each run - $params['fieldType'] = $fieldType; + prepareParams($params, $fieldType); + $conn = AE\connect(); $originalStream = populateTestTable($conn, $params); @@ -46,7 +45,7 @@ function runTest($fieldType) } runTest("varchar(max)"); -runTest("varbinary(max)"); +// runTest("varbinary(max)"); runTest("nvarchar(max)"); echo "Test successful.\n"; @@ -57,8 +56,8 @@ function populateTestTable($conn, $params) $colName = $params['columnName']; $fieldType = $params['fieldType']; - // Create a test table of a column of type 'nvarchar(MAX)' - $columns = array(new AE\ColumnMeta('nvarchar(MAX)', $colName)); + // Create a test table of a single column of a certain field type + $columns = array(new AE\ColumnMeta($fieldType, $colName)); $stmt = AE\createTable($conn, $tblName, $columns); if (!$stmt) { fatalError("Failed to create table $tblName\n"); @@ -94,18 +93,17 @@ function populateTestTable($conn, $params) return fopen($params['testImageURL'], "rb"); } -function prepareParams(&$arr) +function prepareParams(&$arr, $fieldType) { - if (IsWindows()) { + if (isWindows()) { $phpgif = '\\php.gif'; } else { $phpgif = '/php.gif'; } - - // the test table always has a column of type 'nvarchar(MAX)' + $arr['tableName'] = $tblName = "B64TestTable"; $arr['columnName'] = $colName = "Base64Image"; - $arr['fieldType'] = $fieldType = "nvarchar(MAX)"; + $arr['fieldType'] = $fieldType; $arr['insertQuery'] = "INSERT INTO $tblName ($colName) VALUES (?)"; $arr['selectQuery'] = "SELECT TOP 1 $colName FROM $tblName"; $arr['testImageURL'] = dirname($_SERVER['PHP_SELF']) . $phpgif; // use this when no http access diff --git a/test/functional/sqlsrv/0065.phpt b/test/functional/sqlsrv/0065.phpt index 9031b796..a9678bbb 100644 --- a/test/functional/sqlsrv/0065.phpt +++ b/test/functional/sqlsrv/0065.phpt @@ -12,12 +12,13 @@ sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL); require_once('MsCommon.inc'); $c = AE\connect(); +$tableName = 'utf8test'; $columns = array(new AE\ColumnMeta('varchar(100)', 'c1'), new AE\ColumnMeta('nvarchar(100)', 'c2'), new AE\ColumnMeta('nvarchar(max)', 'c3')); -$stmt = AE\createTable($c, "utf8test", $columns); +$stmt = AE\createTable($c, $tableName, $columns); if (!$stmt) { - fatalError("Failed to create table 'utf8test'\n"); + fatalError("Failed to create table $tableName\n"); } $utf8 = "Şơмė śäოрŀề ΆŚĈĨİ-ť℮×ŧ"; @@ -25,17 +26,12 @@ $utf8 = "Şơмė śäოрŀề ΆŚĈĨİ-ť℮×ŧ"; $params = array(array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')), array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')), array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8'))); -$insertSql = "INSERT INTO utf8test (c1, c2, c3) VALUES (?,?,?)"; +$insertSql = "INSERT INTO $tableName (c1, c2, c3) VALUES (?,?,?)"; $s = AE\executeQueryParams($c, $insertSql, $params); -$s = sqlsrv_query( - $c, -"DROP PROCEDURE IntDoubleProc; -DROP PROCEDURE Utf8OutProc; -DROP PROCEDURE Utf8OutWithResultsetProc; -DROP PROCEDURE Utf8InOutProc; -DROP TABLE Utf8TestTable;" -); +$query = "DROP PROCEDURE IntDoubleProc; DROP PROCEDURE Utf8OutProc; DROP PROCEDURE Utf8OutWithResultsetProc; DROP PROCEDURE Utf8InOutProc; DROP TABLE Utf8TestTable;"; + +$s = sqlsrv_query($c, $query); $create_proc = <<getColDef() . ", "; diff --git a/test/functional/sqlsrv/sqlsrv_complex_query.phpt b/test/functional/sqlsrv/sqlsrv_complex_query.phpt index ce05f428..8d77f851 100644 --- a/test/functional/sqlsrv/sqlsrv_complex_query.phpt +++ b/test/functional/sqlsrv/sqlsrv_complex_query.phpt @@ -27,20 +27,11 @@ function insertTest($conn, $tableName, $inputs, $query) foreach ($inputs as $key => $input) { array_push($params, $inputs[$key]); } - if (! is_null($query)) { - // this contains a batch of sql statements, - // with set identity_insert on or off - // thus, sqlsrv_query should be called - $sql = str_replace("SQL", $insertSql, $query); - $stmt = sqlsrv_query($conn, $sql, $params); - } else { - // just a regular insert, so use sqlsrv_prepare - $sql = $insertSql; - $stmt = sqlsrv_prepare($conn, $sql, $params); - if ($stmt) { - sqlsrv_execute($stmt); - } - } + // this contains a batch of sql statements, + // with set identity_insert on or off + // thus, sqlsrv_query should be called + $sql = str_replace("SQL", $insertSql, $query); + $stmt = sqlsrv_query($conn, $sql, $params); } return $stmt; diff --git a/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp.phpt b/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp.phpt index e4b26ae6..49a3c469 100644 --- a/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp.phpt +++ b/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp.phpt @@ -44,7 +44,7 @@ Fetch data from a prepopulated test table given a custom keystore provider sqlsrv_configure('WarningsReturnAsErrors', 1); sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL); - require_once('MsHelper.inc'); + require_once('MsCommon.inc'); $conn = AE\connect(array('ReturnDatesAsStrings'=>true)); if ($conn !== false) { echo "Connected successfully with ColumnEncryption enabled.\n"; diff --git a/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp_encrypted.phpt b/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp_encrypted.phpt index b2ea6c77..4a96a8df 100644 --- a/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp_encrypted.phpt +++ b/test/functional/sqlsrv/sqlsrv_connect_encrypted_ksp_encrypted.phpt @@ -7,7 +7,7 @@ Fetch encrypted data from a prepopulated test table given a custom keystore prov sqlsrv_configure('WarningsReturnAsErrors', 1); sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL); - require_once('MsHelper.inc'); + require_once('MsCommon.inc'); $conn = AE\connect(array('ReturnDatesAsStrings'=>true)); if ($conn === false) { fatalError("Failed to connect.\n"); diff --git a/test/functional/sqlsrv/sqlsrv_param_output_variants.phpt b/test/functional/sqlsrv/sqlsrv_param_output_variants.phpt index fb870fac..7e61f12e 100644 --- a/test/functional/sqlsrv/sqlsrv_param_output_variants.phpt +++ b/test/functional/sqlsrv/sqlsrv_param_output_variants.phpt @@ -46,7 +46,7 @@ function execProcedure($conn, $tsql, $params) function testOutputParam($conn, $tableName) { // First, create a stored procedure - $procName = getTempProcName('sqlVariant', false); + $procName = 'sqlVariant_out_proc'; $spArgs = "@p2 sql_variant OUTPUT"; @@ -77,7 +77,7 @@ function testOutputParam($conn, $tableName) function testInputAndOutputParam($conn, $tableName) { - $procName = getTempProcName('sqlVariant', false); + $procName = 'sqlVariant_inout_proc'; $spArgs = "@p1 int, @p2 sql_variant OUTPUT"; $spCode = "SET @p2 = ( SELECT [c2_variant] FROM $tableName WHERE [c1_int] = @p1)"; $stmt = sqlsrv_query($conn, "CREATE PROC [$procName] ($spArgs) AS BEGIN $spCode END"); diff --git a/test/functional/sqlsrv/srv_231_string_truncation_varchar_max.phpt b/test/functional/sqlsrv/srv_231_string_truncation_varchar_max.phpt index e092e181..74adcd76 100644 --- a/test/functional/sqlsrv/srv_231_string_truncation_varchar_max.phpt +++ b/test/functional/sqlsrv/srv_231_string_truncation_varchar_max.phpt @@ -15,7 +15,7 @@ $tableName = 'testDataTypes_GH231_VC'; $columnNames = array("c1", "c2"); for ($k = 1; $k <= 8; $k++) { - $sqlType = getFieldType($k); + $sqlType = SQLType($k); $columns = array(new AE\ColumnMeta('int', $columnNames[0]), new AE\ColumnMeta($sqlType, $columnNames[1])); AE\createTable($conn, $tableName, $columns); @@ -123,7 +123,7 @@ function getPhpType($k) return $phpType; } -function getFieldType($k) +function SQLType($k) { switch ($k) { case 1: return ("char(512)");