]> granicus.if.org Git - php/commitdiff
New testcases for stripslashes() function
authorRaghubansh Kumar <kraghuba@php.net>
Fri, 7 Sep 2007 13:51:26 +0000 (13:51 +0000)
committerRaghubansh Kumar <kraghuba@php.net>
Fri, 7 Sep 2007 13:51:26 +0000 (13:51 +0000)
ext/standard/tests/strings/stripslashes_basic.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_error.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_variation1.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_variation2.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_variation3.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_variation4.phpt [new file with mode: 0644]
ext/standard/tests/strings/stripslashes_variation5.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/strings/stripslashes_basic.phpt b/ext/standard/tests/strings/stripslashes_basic.phpt
new file mode 100644 (file)
index 0000000..548aee5
Binary files /dev/null and b/ext/standard/tests/strings/stripslashes_basic.phpt differ
diff --git a/ext/standard/tests/strings/stripslashes_error.phpt b/ext/standard/tests/strings/stripslashes_error.phpt
new file mode 100644 (file)
index 0000000..cef09fc
--- /dev/null
@@ -0,0 +1,43 @@
+--TEST--
+Test stripslashes() function : error conditions 
+--FILE--
+<?php
+/* Prototype  : string stripslashes ( string $str )
+ * Description: Returns an un-quoted string
+ * Source code: ext/standard/string.c
+*/
+
+/*
+ * Testing stripslashes() for error conditions
+*/
+
+echo "*** Testing stripslashes() : error conditions ***\n";
+
+// Zero argument
+echo "\n-- Testing stripslashes() function with Zero arguments --\n";
+var_dump( stripslashes() );
+
+// More than expected number of arguments
+echo "\n-- Testing stripslashes() function with more than expected no. of arguments --\n";
+$str = '\"hello\"\"world\"';
+$extra_arg = 10;
+
+var_dump( stripslashes($str, $extra_arg) );
+var_dump( $str );
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing stripslashes() : error conditions ***
+
+-- Testing stripslashes() function with Zero arguments --
+
+Warning: Wrong parameter count for stripslashes() in %s on line %d
+NULL
+
+-- Testing stripslashes() function with more than expected no. of arguments --
+
+Warning: Wrong parameter count for stripslashes() in %s on line %d
+NULL
+string(18) "\"hello\"\"world\""
+Done
diff --git a/ext/standard/tests/strings/stripslashes_variation1.phpt b/ext/standard/tests/strings/stripslashes_variation1.phpt
new file mode 100644 (file)
index 0000000..50fadf8
--- /dev/null
@@ -0,0 +1,170 @@
+--TEST--
+Test stripslashes() function : usage variations  - non-string type argument 
+--FILE--
+<?php
+/* Prototype  : string stripslashes ( string $str )
+ * Description: Returns an un-quoted string
+ * Source code: ext/standard/string.c
+*/
+
+/*
+ * Test stripslashes() with non-string type argument such as int, float, etc 
+*/
+
+echo "*** Testing stripslashes() : with non-string type argument ***\n";
+// initialize all required variables
+
+// get an unset variable
+$unset_var = 'string_val';
+unset($unset_var);
+
+// declaring a class
+class sample  {
+  public function __toString() {
+  return "obj\'ct";
+  } 
+}
+
+// Defining resource
+$file_handle = fopen(__FILE__, 'r');
+
+// array with different values
+$values =  array (
+
+  // integer values
+  0,
+  1,
+  12345,
+  -2345,
+
+  // float values
+  10.5,
+  -10.5,
+  10.5e10,
+  10.6E-10,
+  .5,
+
+  // array values
+  array(),
+  array(0),
+  array(1),
+  array(1, 2),
+  array('color' => 'red', 'item' => 'pen'),
+
+  // boolean values
+  true,
+  false,
+  TRUE,
+  FALSE,
+
+  // empty string
+  "",
+  '',
+
+  // undefined variable
+  $undefined_var,
+
+  // unset variable
+  $unset_var,
+  
+  // objects
+  new sample(),
+
+  // resource
+  $file_handle,
+
+  // NULL values 
+  NULL,
+  null
+);
+
+
+// loop through each element of the array and check the working of stripslashes()
+// when $str arugment is supplied with different values
+echo "\n--- Testing stripslashes() by supplying different values for 'str' argument ---\n";
+$counter = 1;
+for($index = 0; $index < count($values); $index ++) {
+  echo "-- Iteration $counter --\n";
+  $str = $values [$index];
+
+  var_dump( stripslashes($str) );
+
+  $counter ++;
+}
+
+// closing the file
+fclose($file_handle);
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing stripslashes() : with non-string type argument ***
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Undefined variable: unset_var in %s on line %d
+
+--- Testing stripslashes() by supplying different values for 'str' argument ---
+-- Iteration 1 --
+string(1) "0"
+-- Iteration 2 --
+string(1) "1"
+-- Iteration 3 --
+string(5) "12345"
+-- Iteration 4 --
+string(5) "-2345"
+-- Iteration 5 --
+string(4) "10.5"
+-- Iteration 6 --
+string(5) "-10.5"
+-- Iteration 7 --
+string(12) "105000000000"
+-- Iteration 8 --
+string(7) "1.06E-9"
+-- Iteration 9 --
+string(3) "0.5"
+-- Iteration 10 --
+
+Notice: Array to string conversion in %s on line %d
+string(5) "Array"
+-- Iteration 11 --
+
+Notice: Array to string conversion in %s on line %d
+string(5) "Array"
+-- Iteration 12 --
+
+Notice: Array to string conversion in %s on line %d
+string(5) "Array"
+-- Iteration 13 --
+
+Notice: Array to string conversion in %s on line %d
+string(5) "Array"
+-- Iteration 14 --
+
+Notice: Array to string conversion in %s on line %d
+string(5) "Array"
+-- Iteration 15 --
+string(1) "1"
+-- Iteration 16 --
+string(0) ""
+-- Iteration 17 --
+string(1) "1"
+-- Iteration 18 --
+string(0) ""
+-- Iteration 19 --
+string(0) ""
+-- Iteration 20 --
+string(0) ""
+-- Iteration 21 --
+string(0) ""
+-- Iteration 22 --
+string(0) ""
+-- Iteration 23 --
+string(6) "obj'ct"
+-- Iteration 24 --
+string(14) "Resource id #%d"
+-- Iteration 25 --
+string(0) ""
+-- Iteration 26 --
+string(0) ""
+Done
diff --git a/ext/standard/tests/strings/stripslashes_variation2.phpt b/ext/standard/tests/strings/stripslashes_variation2.phpt
new file mode 100644 (file)
index 0000000..d813d0b
Binary files /dev/null and b/ext/standard/tests/strings/stripslashes_variation2.phpt differ
diff --git a/ext/standard/tests/strings/stripslashes_variation3.phpt b/ext/standard/tests/strings/stripslashes_variation3.phpt
new file mode 100644 (file)
index 0000000..2ccf97f
--- /dev/null
@@ -0,0 +1,124 @@
+--TEST--
+Test stripslashes() function : usage variations - strings with newline and tab characters
+--FILE--
+<?php
+/* Prototype  : string stripslashes ( string $str )
+ * Description: Returns an un-quoted string
+ * Source code: ext/standard/string.c
+*/
+
+/*
+ * Test stripslashes() with strings containing newline and tab characters.
+*/
+
+echo "*** Testing stripslashes() : with strings containing newline and tab characters ***\n";
+
+// initialising  heredoc strings
+$heredoc_string_with_newline = <<<EOT
+This is line 1 \nof 'heredoc' string
+This is line 2 \nof "heredoc" string
+EOT;
+
+$heredoc_string_with_tab = <<<EOT
+This is line 1 \tof 'heredoc' string
+This is line 2 \tof "heredoc" string
+EOT;
+// initialising the string array
+
+$str_array = array( 
+                    // string with newline character
+                    "\n",
+                   "\\n",
+                    "Hello \nworld",
+                    "Hello \\nworld",
+                    '\n',
+                   '\\n',
+                    'Hello \nworld',
+                    'Hello \\nworld',
+                    $heredoc_string_with_newline,
+                    // string with tab character
+                   "\t",
+                   "\\t",
+                    "Hello \tworld",
+                    "Hello \\tworld",
+                   '\t',
+                   '\\t',
+                    'Hello \tworld',
+                    'Hello \\tworld',
+                    $heredoc_string_with_tab
+                  );
+
+$count = 1;
+// looping to test for all strings in $str_array
+foreach( $str_array as $str )  {
+  echo "\n-- Iteration $count --\n";
+  var_dump( stripslashes($str) );
+  $count ++;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing stripslashes() : with strings containing newline and tab characters ***
+
+-- Iteration 1 --
+string(1) "
+"
+
+-- Iteration 2 --
+string(1) "n"
+
+-- Iteration 3 --
+string(12) "Hello 
+world"
+
+-- Iteration 4 --
+string(12) "Hello nworld"
+
+-- Iteration 5 --
+string(1) "n"
+
+-- Iteration 6 --
+string(1) "n"
+
+-- Iteration 7 --
+string(12) "Hello nworld"
+
+-- Iteration 8 --
+string(12) "Hello nworld"
+
+-- Iteration 9 --
+string(71) "This is line 1 
+of 'heredoc' string
+This is line 2 
+of "heredoc" string"
+
+-- Iteration 10 --
+string(1) "    "
+
+-- Iteration 11 --
+string(1) "t"
+
+-- Iteration 12 --
+string(12) "Hello      world"
+
+-- Iteration 13 --
+string(12) "Hello tworld"
+
+-- Iteration 14 --
+string(1) "t"
+
+-- Iteration 15 --
+string(1) "t"
+
+-- Iteration 16 --
+string(12) "Hello tworld"
+
+-- Iteration 17 --
+string(12) "Hello tworld"
+
+-- Iteration 18 --
+string(71) "This is line 1     of 'heredoc' string
+This is line 2         of "heredoc" string"
+Done
diff --git a/ext/standard/tests/strings/stripslashes_variation4.phpt b/ext/standard/tests/strings/stripslashes_variation4.phpt
new file mode 100644 (file)
index 0000000..eccca6a
--- /dev/null
@@ -0,0 +1,133 @@
+--TEST--
+Test stripslashes() function : usage variations - double dimensional arrays
+--FILE--
+<?php
+/* Prototype  : string stripslashes ( string $str )
+ * Description: Returns an un-quoted string
+ * Source code: ext/standard/string.c
+*/
+
+/*
+ * Test stripslashes() with double dimensional arrays
+*/
+
+echo "*** Testing stripslashes() : with double dimensional arrays ***\n";
+
+// initialising the string array
+
+$str_array = array( 
+                    array("", array()),
+                    array("", array("")),
+                    array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar")),
+                    array("f\\'oo", "b\\'ar", array("")),
+                    array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar", array(""))),
+                    array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar", array("fo\\'o", "b\\'ar")))
+                  );
+function stripslashes_deep($value)  {
+  $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
+  return $value;
+}
+
+$count = 1;
+// looping to test for all strings in $str_array
+foreach( $str_array as $arr )  {
+  echo "\n-- Iteration $count --\n";
+  var_dump( stripslashes_deep($arr) );
+  $count ++;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing stripslashes() : with double dimensional arrays ***
+
+-- Iteration 1 --
+array(2) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  array(0) {
+  }
+}
+
+-- Iteration 2 --
+array(2) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  array(1) {
+    [0]=>
+    string(0) ""
+  }
+}
+
+-- Iteration 3 --
+array(3) {
+  [0]=>
+  string(4) "f'oo"
+  [1]=>
+  string(4) "b'ar"
+  [2]=>
+  array(2) {
+    [0]=>
+    string(4) "fo'o"
+    [1]=>
+    string(4) "b'ar"
+  }
+}
+
+-- Iteration 4 --
+array(3) {
+  [0]=>
+  string(4) "f'oo"
+  [1]=>
+  string(4) "b'ar"
+  [2]=>
+  array(1) {
+    [0]=>
+    string(0) ""
+  }
+}
+
+-- Iteration 5 --
+array(3) {
+  [0]=>
+  string(4) "f'oo"
+  [1]=>
+  string(4) "b'ar"
+  [2]=>
+  array(3) {
+    [0]=>
+    string(4) "fo'o"
+    [1]=>
+    string(4) "b'ar"
+    [2]=>
+    array(1) {
+      [0]=>
+      string(0) ""
+    }
+  }
+}
+
+-- Iteration 6 --
+array(3) {
+  [0]=>
+  string(4) "f'oo"
+  [1]=>
+  string(4) "b'ar"
+  [2]=>
+  array(3) {
+    [0]=>
+    string(4) "fo'o"
+    [1]=>
+    string(4) "b'ar"
+    [2]=>
+    array(2) {
+      [0]=>
+      string(4) "fo'o"
+      [1]=>
+      string(4) "b'ar"
+    }
+  }
+}
+Done
diff --git a/ext/standard/tests/strings/stripslashes_variation5.phpt b/ext/standard/tests/strings/stripslashes_variation5.phpt
new file mode 100644 (file)
index 0000000..a506917
Binary files /dev/null and b/ext/standard/tests/strings/stripslashes_variation5.phpt differ