From 5984ac5287764dba84ef18b7d3e92cdfcd261b67 Mon Sep 17 00:00:00 2001
From: robocoder <anthon.pang@gmail.com>
Date: Sun, 9 Jan 2011 06:15:54 +0000
Subject: [PATCH] fix javascript unit test to support magic_quotes_gpc

git-svn-id: http://dev.piwik.org/svn/trunk@3683 59fd770c-687e-43c8-a1e3-f5a4ff64c105
---
 tests/javascript/index.php |  2 +-
 tests/javascript/piwik.php | 20 +++++++++++++-------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index e96496dc67..60e01c34dc 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -380,7 +380,7 @@ if ($sqlite) {
 		stop();
 		setTimeout(function() {
 			jQuery.ajax({
-				url: url("piwik.php?results='. $token .'"),
+				url: url("piwik.php?results=" + getToken()),
 				success: function(results) {
 //alert(results);
 					ok( /\<span\>12\<\/span\>/.test( results ), "count tracking events" );
diff --git a/tests/javascript/piwik.php b/tests/javascript/piwik.php
index 24c243b602..ded5ed14a5 100644
--- a/tests/javascript/piwik.php
+++ b/tests/javascript/piwik.php
@@ -21,22 +21,27 @@ $dbhandle = sqlite_open( 'unittest.dbf' );
 if ($dbhandle) {
 	// SQLite 3.3 supports CREATE TABLE IF NOT EXISTS
 
-	$result = sqlite_array_query($dbhandle, "SELECT COUNT(*) FROM requests");
+	$result = @sqlite_array_query($dbhandle, "SELECT COUNT(*) FROM requests");
 	if ($result === false) {
 		try {
 			$query = sqlite_exec( $dbhandle, 'CREATE TABLE requests (token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT);' );
 		} catch (Exception $e) { }
 	}
 }
+else
+{
+	header("HTTP/1.0 500 Internal Server Error");
+	exit;
+}
 
 if (isset($_GET['results'])) {
-	$token = $_GET['results'];
+	$token = get_magic_quotes_gpc() ? stripslashes($_GET['results']) : $_GET['results'];
 	$ua = $_SERVER['HTTP_USER_AGENT'];
 
 	echo "<html><head><title>$token</title></head><body>\n";
 
 //	$result = sqlite_array_query($dbhandle, "SELECT uri FROM requests");
-	$result = sqlite_array_query($dbhandle, "SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\"");
+	$result = @sqlite_array_query($dbhandle, "SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\"");
 	if ($result !== false) {
 		$nofRows = count($result);
 		echo "<span>$nofRows</span>\n";
@@ -51,20 +56,21 @@ if (isset($_GET['results'])) {
 	if (!isset($_REQUEST['data'])) {
 		header("HTTP/1.0 400 Bad Request");
 	} else {
-		$data = json_decode($_REQUEST['data']);
-
-		$token = isset($data->token) ? $data->token : '';
-
 		$ip = $_SERVER['REMOTE_ADDR'];
 		$ts = $_SERVER['REQUEST_TIME'];
+
 		$uri = $_SERVER['REQUEST_URI'];
 		if($_SERVER['REQUEST_METHOD'] == 'POST') {
 			$uri .= '?' . file_get_contents('php://input');
 		}
 		$uri = htmlspecialchars($uri);
+
 		$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
 		$ua = $_SERVER['HTTP_USER_AGENT'];
 
+		$data = json_decode(get_magic_quotes_gpc() ? stripslashes($_REQUEST['data']) : $_REQUEST['data'], true);
+		$token = isset($data['token']) ? $data['token'] : '';
+
 		$query = sqlite_exec($dbhandle, "INSERT INTO requests (token, ip, ts, uri, referer, ua) VALUES (\"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referer\", \"$ua\")", $error);
 		if (!$query) {
 			header("HTTP/1.0 500 Internal Server Error");
-- 
GitLab