model = new Model(); } public function testGetPluginsFromDirectoyShouldReturnEmptyArrayIfNoPluginsExist() { $plugins = $this->model->getPluginsFromDirectoy(PIWIK_INCLUDE_PATH . '/config'); $this->assertEquals(array(), $plugins); } public function testGetPluginsFromDirectoyShouldReturnAllDirectoriesWithinPlugins() { $plugins = $this->model->getPluginsFromDirectoy(PIWIK_INCLUDE_PATH); $this->assertGreaterThan(40, count($plugins)); self::assertTrue(in_array('/plugins/API', $plugins)); self::assertTrue(in_array('/plugins/Actions', $plugins)); self::assertTrue(in_array('/plugins/Annotations', $plugins)); self::assertTrue(!in_array('/plugins/.', $plugins)); self::assertTrue(!in_array('/plugins/..', $plugins)); self::assertTrue(!in_array('/plugins', $plugins)); self::assertTrue(!in_array('/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'. } } }