public function test_getPluginsFromDirectoy_shouldReturnAllDirectoriesWithinPlugins() { $plugins = $this->model->getPluginsFromDirectoy(PIWIK_INCLUDE_PATH); $this->assertGreaterThan(40, count($plugins)); $this->assertContains('/plugins/API', $plugins); $this->assertContains('/plugins/Actions', $plugins); $this->assertContains('/plugins/Annotations', $plugins); $this->assertNotContains('/plugins/.', $plugins); $this->assertNotContains('/plugins/..', $plugins); $this->assertNotContains('/plugins', $plugins); $this->assertNotContains('/plugins/', $plugins); foreach ($plugins as $plugin) { $this->assertTrue(is_dir(PIWIK_INCLUDE_PATH . $plugin)); $this->assertStringStartsWith('/plugins/', $plugin); $this->assertTrue(12 <= strlen($plugin)); // make sure it does not return something like '/plugins'. } }
private function oneClick_Copy() { /* * Make sure the execute bit is set for this shell script */ if (!Rules::isBrowserTriggerEnabled()) { @chmod($this->pathRootExtractedPiwik . '/misc/cron/archive.sh', 0755); } $model = new Model(); /* * Copy all files to PIWIK_INCLUDE_PATH. * These files are accessed through the dispatcher. */ Filesystem::copyRecursive($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); /* * These files are visible in the web root and are generally * served directly by the web server. May be shared. */ if (PIWIK_INCLUDE_PATH !== PIWIK_DOCUMENT_ROOT) { /* * Copy PHP files that expect to be in the document root */ $specialCases = array('/index.php', '/piwik.php', '/js/index.php'); foreach ($specialCases as $file) { Filesystem::copy($this->pathRootExtractedPiwik . $file, PIWIK_DOCUMENT_ROOT . $file); } /* * Copy the non-PHP files (e.g., images, css, javascript) */ Filesystem::copyRecursive($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT, true); $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT); } /* * Config files may be user (account) specific */ if (PIWIK_INCLUDE_PATH !== PIWIK_USER_PATH) { Filesystem::copyRecursive($this->pathRootExtractedPiwik . '/config', PIWIK_USER_PATH . '/config'); } Filesystem::unlinkRecursive($this->pathRootExtractedPiwik, true); Filesystem::clearPhpCaches(); }