Skip to content
Extraits de code Groupes Projets
Valider c928ff49 rédigé par mattab's avatar mattab
Parcourir les fichiers

New automated test to detect when piwik.js minified file is out of sync with original piwik.js

parent 85e0c154
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -31,13 +31,13 @@ The js/ folder contains:
## Deployment
* piwik.js is minified using YUICompressor 2.4.2.
* piwik.js is minified using YUICompressor 2.4.7.
To install YUICompressor run:
```bash
$ cd /path/to/piwik/js/
$ wget http://www.julienlecomte.net/yuicompressor/yuicompressor-2.4.2.zip
$ unzip yuicompressor-2.4.2.zip
$ wget https://github.com/downloads/yui/yuicompressor/yuicompressor-2.4.7.zip
$ unzip yuicompressor-2.4.7.zip
```
To compress the code containing the evil "eval", either apply the patch from
......@@ -46,7 +46,7 @@ The js/ folder contains:
```bash
$ cd /path/to/piwik/js/
$ sed '/<DEBUG>/,/<\/DEBUG>/d' < piwik.js | sed 's/eval/replacedEvilString/' | java -jar yuicompressor-2.4.2/build/yuicompressor-2.4.2.jar --type js --line-break 1000 | sed 's/replacedEvilString/eval/' | sed 's/^[/][*]/\/*!/' > piwik-min.js && cp piwik-min.js ../piwik.js
$ sed '/<DEBUG>/,/<\/DEBUG>/d' < piwik.js | sed 's/eval/replacedEvilString/' | java -jar yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar --type js --line-break 1000 | sed 's/replacedEvilString/eval/' | sed 's/^[/][*]/\/*!/' > piwik-min.js && cp piwik-min.js ../piwik.js
```
This will generate the minify /path/to/piwik/js/piwik-min.js and copy it to
......
Ce diff est replié.
......@@ -31,7 +31,7 @@ class JsProxyTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($piwik_js, $fullResponse, 'script content');
}
public function testPiwikJsNoComment()
public function testPiwik_WhiteLabelledJs_HasNoComment()
{
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $this->getStaticSrvUrl() . '/js/tracker.php');
......@@ -44,7 +44,7 @@ class JsProxyTest extends \PHPUnit_Framework_TestCase
$piwikJs = file_get_contents(PIWIK_PATH_TEST_TO_ROOT . '/piwik.js');
$piwikNoCommentJs = substr($piwikJs, strpos($piwikJs, "*/\n") + 3);
$this->assertEquals($piwikNoCommentJs, $fullResponse, 'script content (if comment shows, $byteStart value in /js/tracker.php)');
$this->assertEquals($piwikNoCommentJs, trim($fullResponse), 'script content (if comment shows, $byteStart value in /js/tracker.php)');
}
public function testPiwikPhp()
......
......@@ -12,6 +12,7 @@ use Exception;
use Piwik\Config;
use Piwik\Container\StaticContainer;
use Piwik\Filesystem;
use Piwik\Http;
use Piwik\Ini\IniReader;
use Piwik\Plugin\Manager;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
......@@ -201,7 +202,7 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
$js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.twig');
$this->checkFilesDoNotHaveWeirdSpaces($js);
}
public function test_htmlfilesDoNotContainFakeSpaces()
{
$js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.html');
......@@ -329,6 +330,18 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
$this->assertTrue(preg_match($pattern, $contents) == 0);
}
public function test_piwikJs_minified_isUpToDate()
{
Http::fetchRemoteFile('https://github.com/downloads/yui/yuicompressor/yuicompressor-2.4.7.zip', PIWIK_DOCUMENT_ROOT .'/tmp/yuicompressor.zip');
shell_exec('unzip -n '. PIWIK_DOCUMENT_ROOT .'/tmp/yuicompressor.zip');
shell_exec("sed '/<DEBUG>/,/<\/DEBUG>/d' < ". PIWIK_DOCUMENT_ROOT ."/js/piwik.js | sed 's/eval/replacedEvilString/' | java -jar yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar --type js --line-break 1000 | sed 's/replacedEvilString/eval/' | sed 's/^[/][*]/\/*!/' > " . PIWIK_DOCUMENT_ROOT ."/piwik-minified.js");
$piwikJsMinified = file_get_contents(PIWIK_DOCUMENT_ROOT ."/piwik-minified.js");
$piwikJsMinifiedInGit = file_get_contents(PIWIK_DOCUMENT_ROOT . '/piwik.js');
$this->assertEquals($piwikJsMinified, $piwikJsMinifiedInGit, 'piwik.js minified is out of date - please re-generate the piwik.js. See instructions in js/README');
}
public function testTmpDirectoryContainsGitKeep()
{
$this->assertFileExists(PIWIK_DOCUMENT_ROOT . '/tmp/.gitkeep');
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter