diff --git a/.gitignore b/.gitignore index 3b5e5a59abdb92aed4015662dd418cb74c7d6187..656b578fd6ad65f5dcb9930efebe2e086a0163b6 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ vendor/ tests/javascript/enable_sqlite tests/javascript/enable_sqlite tests/javascript/unittest.dbf +tests/javascript/unittest2.dbf tests/lib/geoip-files/*.dat* tests/lib/xhprof* tests/PHPUnit/Integration/processed/ diff --git a/tests/javascript/index.php b/tests/javascript/index.php index 40cff99a079cf8374fdcc24f6e2110e6fb8c2837..1988c352a0bb2fe5f295375e23a42c93fb61beed 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -2970,7 +2970,8 @@ if ($sqlite) { resetTracker(tracker, token6); tracker.enableTrackOnlyVisibleContent(false, 0); tracker.trackAllContentImpressions(); - strictEqual(tracker.getTrackedContentImpressions().length, 7, 'should still track all impressions even if visible enabled'); + expected = [contentBlocks[7], contentBlocks[6], contentBlocks[5], contentBlocks[1], contentBlocks[4], contentBlocks[3], contentBlocks[2]]; + propEqual(tracker.getTrackedContentImpressions().length, 7, 'should still track all impressions even if visible enabled'); var token7 = '7' + token; resetTracker(tracker, token7); diff --git a/tests/javascript/piwik.php b/tests/javascript/piwik.php index d8f1e1c7ef66f3391b21b47c169b9a91cfb15a7e..df7f606ef248d4fe74363fc938fe23238e54f3ea 100644 --- a/tests/javascript/piwik.php +++ b/tests/javascript/piwik.php @@ -24,16 +24,27 @@ if (!class_exists('SQLite')) { exit; } -$sqlite = new SQLite( 'unittest.dbf' ); +$sqlite = new SQLite( 'unittest2.dbf' ); if (!$sqlite) { header("HTTP/1.0 500 Internal Server Error"); exit; } -if (filesize(dirname(__FILE__).'/unittest.dbf') == 0) +function getNextRequestId($sqlite, $token) +{ + $requests = $sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\""); + + if (empty($requests)) { + return 1; + } + + return count($requests) + 1; +} + +if (filesize(dirname(__FILE__).'/unittest2.dbf') == 0) { try { - $query = @$sqlite->exec( 'CREATE TABLE requests (token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT)' ); + $query = @$sqlite->exec( 'CREATE TABLE requests (requestid TEXT, token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT)' ); } catch (Exception $e) { header("HTTP/1.0 500 Internal Server Error"); exit; @@ -51,7 +62,9 @@ function logRequest($sqlite, $uri, $data) { $token = isset($data['token']) ? $data['token'] : ''; - $query = $sqlite->exec("INSERT INTO requests (token, ip, ts, uri, referer, ua) VALUES (\"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")"); + $id = getNextRequestId($sqlite, $token); + + $query = $sqlite->exec("INSERT INTO requests (requestid, token, ip, ts, uri, referer, ua) VALUES (\"$id\", \"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")"); return $query; } @@ -65,7 +78,7 @@ if (isset($_GET['requests'])) { sleep(5); // $result = $sqlite->query_array("SELECT uri FROM requests"); - $result = @$sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\" ORDER BY ts ASC"); + $result = @$sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\" ORDER BY ts ASC, requestid ASC"); if ($result !== false) { $nofRows = count($result); echo "<span>$nofRows</span>\n";