public function testViewGeneratesCorrectLookingYAML() { $view = new TravisYmlView(); $view->setGenerationMode('plugin'); $view->setPlugin('ExamplePlugin'); $view->setExtraGlobalEnvVars(array('secure: artifactspass', 'secure: githubtoken')); $view->setGenerateYmlCommand('./console generate:travis-yml \'arg1\' arg2'); $view->setPathToCustomTravisStepsFiles(PIWIK_INCLUDE_PATH . '/plugins/ExamplePlugin/tests/travis'); $view->setLatestStableVersion('2.14.0'); $view->setTestsToRun(array(array('name' => "PluginTests", 'vars' => "MYSQL_ADAPTER=PDO_MYSQL"), array('name' => "PluginTests", 'vars' => "MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_CORE=latest_stable"))); $view->useNewTravisInfrastructure(); $output = $view->render(); $yaml = Spyc::YAMLLoadString($output); $this->assertNotEmpty($yaml['env']); $this->assertNotEmpty($yaml['env']['global']); $this->assertContains("PLUGIN_NAME=ExamplePlugin", $yaml['env']['global']); $this->assertContains("PIWIK_ROOT_DIR=\$TRAVIS_BUILD_DIR/piwik", $yaml['env']['global']); $this->assertContains(array('secure' => 'artifactspass'), $yaml['env']['global']); $this->assertContains(array('secure' => 'githubtoken'), $yaml['env']['global']); $this->assertNotEmpty($yaml['env']['matrix']); $this->assertContains("TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL", $yaml['env']['matrix']); $this->assertContains("TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_CORE=latest_stable", $yaml['env']['matrix']); $this->assertNotContains("TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL", $yaml['env']['matrix']); $this->assertEquals(false, $yaml['sudo']); $this->assertBuildSectionsNotEmpty($yaml); $this->assertContains("export GENERATE_TRAVIS_YML_COMMAND=\"./console generate:travis-yml \\'arg1\\' arg2\"", $yaml['install']); $this->assertViewUsesPluginSpecifiedTravisCommands($yaml); $this->assertViewUsesPluginSpecifiedAptPackages($yaml); }