Esempio n. 1
0
 /**
  * Execute command with tester.
  *
  * @param string $command
  * @param array $args
  * @param array $options
  * @return string Display result.
  */
 protected function exec($command, $args = [], $options = [])
 {
     $this->tester->run(['command' => $command] + $args, $options);
     // Clear realpath cache.
     clearstatcache(self::$deployPath);
     return $this->tester->getDisplay();
 }
Esempio n. 2
0
 /**
  * @param string $command
  *
  * @return integer
  */
 private function run($command)
 {
     $application = $this->createApplication();
     $application->setAutoExit(false);
     $this->applicationTester = new ApplicationTester($application);
     $this->outputFile = tempnam('.', 'phpeg');
     return $this->applicationTester->run(array('command' => $command, 'input-file' => $this->inputFile, 'output-file' => $this->outputFile));
 }
 public function test_CommandSkipsExisitingUsers_IfSkipExistingOptionUsed()
 {
     $this->addPreexistingSuperUser();
     $result = $this->applicationTester->run(array('command' => 'loginldap:synchronize-users', '--login' => array('ironman', 'captainamerica'), '--skip-existing' => true, '-v' => true));
     $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
     $this->assertContains("Skipping 'captainamerica', already exists in Piwik...", $this->applicationTester->getDisplay());
     $users = $this->getLdapUserLogins();
     $this->assertEquals(array('ironman'), $users);
 }
Esempio n. 4
0
 /**
  * @When I run phpzone
  * @When I run phpzone with :command
  * @When I run phpzone with :command and :option
  */
 public function iRunPhpzoneWith($command = null, $option = null)
 {
     $input = array('--no-tty' => true);
     $input = array_merge($input, array($command));
     if ($option !== null) {
         $input = array_merge($input, array($option => true));
     }
     $this->tester->run($input);
 }
 public function test_CommandResetsPassword_WhenUserIsLdapUserAndAlreadySynchronized()
 {
     Config::getInstance()->LoginLdap['enable_random_token_auth_generation'] = 1;
     $result = $this->applicationTester->run(array('command' => 'loginldap:generate-token-auth', 'login' => self::PREEXISTING_LDAP_USER));
     $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
     $user = $this->getUser(self::PREEXISTING_LDAP_USER);
     $this->assertNotEquals(self::PREEXISTING_PASSWORD, $user['password']);
     $this->assertNotEquals(self::PREEXISTING_TOKEN_AUTH, $user['token_auth']);
 }
Esempio n. 6
0
 /**
  * @param string       $command
  * @param string       $file
  * @param PyStringNode $options
  *
  * @When /^I run (?P<command>[a-zA-Z0-9\.\:]*) command with file \"(?P<file>[^\"]*)\"$/
  * @When /^I run (?P<command>[a-zA-Z0-9\.\:]*) command with file \"(?P<file>[^\"]*)\" and options:$/
  */
 public function iRunCommand($command, $file = null, PyStringNode $options = null)
 {
     $arguments = array('command' => $command, 'name' => 'Test');
     $arguments['configuration-file'] = __DIR__ . "/../../" . $file;
     $options = $this->parseOptions($options);
     $arguments += $options;
     $runOptions = array('interactive' => false, 'decorated' => false);
     $this->lastExitCode = $this->tester->run($arguments, $runOptions);
     $this->lastDisplay = $this->tester->getDisplay();
 }
Esempio n. 7
0
 public function test_FixDuplicateLogActions_CorrectlyRemovesDuplicates_AndFixesReferencesInOtherTables()
 {
     $result = $this->applicationTester->run(array('command' => 'core:fix-duplicate-log-actions', '--invalidate-archives' => 0, '-vvv' => false));
     $this->assertEquals(0, $result, "Command failed: " . $this->applicationTester->getDisplay());
     $this->assertDuplicateActionsRemovedFromLogActionTable();
     $this->assertDuplicatesFixedInLogLinkVisitActionTable();
     $this->assertDuplicatesFixedInLogConversionTable();
     $this->assertDuplicatesFixedInLogConversionItemTable();
     $this->assertContains("Found and deleted 7 duplicate action entries", $this->applicationTester->getDisplay());
     $expectedAffectedArchives = array(array('idsite' => '1', 'server_time' => '2012-01-01'), array('idsite' => '2', 'server_time' => '2013-01-01'), array('idsite' => '1', 'server_time' => '2012-02-01'), array('idsite' => '2', 'server_time' => '2012-01-09'), array('idsite' => '2', 'server_time' => '2012-03-01'));
     foreach ($expectedAffectedArchives as $archive) {
         $this->assertContains("[ idSite = {$archive['idsite']}, date = {$archive['server_time']} ]", $this->applicationTester->getDisplay());
     }
 }
    public function testUserCreationWithOptions()
    {
        $kernel = $this->createKernel();
        $command = new CreateUserCommand();
        $application = new Application($kernel);
        $application->setAutoExit(false);
        $tester = new ApplicationTester($application);
        $username = '******';
        $password = '******';
        $email    = '*****@*****.**';
        $tester->run(array(
            'command'  => $command->getFullName(),
            'username' => $username,
            'password' => $password,
            'email'    => $email,
            '--inactive' => true,
            '--super-admin' => true
        ), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));

        $userManager = $this->getService('fos_user.user_manager');
        $user = $userManager->findUserByUsername($username);

        $this->assertTrue($user instanceof User);
        $this->assertEquals($email, $user->getEmail());
        $this->assertFalse($user->isEnabled());
        $this->assertTrue($user->hasRole('ROLE_SUPERADMIN'));

        $userManager->deleteUser($user);
    }
 public function testUserActivation()
 {
     $kernel = $this->createKernel();
     $command = new ActivateUserCommand();
     $application = new Application($kernel);
     $application->setAutoExit(false);
     $tester = new ApplicationTester($application);
     $username = '******';
     $password = '******';
     $email = '*****@*****.**';
     $userManager = $this->getService('fos_user.user_manager');
     $user = $userManager->createUser();
     $user->setUsername($username);
     $user->setEmail($email);
     $user->setPlainPassword($password);
     $user->setEnabled(false);
     $userManager->updateUser($user);
     $this->assertFalse($user->isEnabled());
     $tester->run(array('command' => $command->getFullName(), 'username' => $username), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));
     $this->getService('doctrine.orm.default_entity_manager')->clear();
     $userManager = $this->getService('fos_user.user_manager');
     $user = $userManager->findUserByUsername($username);
     $this->assertTrue($user instanceof User);
     $this->assertTrue($user->isEnabled());
     $userManager->updateUser($user);
 }
    public function testPromotion()
    {
        $kernel = $this->createKernel();
        $command = new PromoteSuperAdminCommand();
        $application = new Application($kernel);
        $application->setAutoExit(false);
        $tester = new ApplicationTester($application);
        $username = '******';
        $password = '******';
        $email    = '*****@*****.**';
        $userManager = $kernel->getContainer()->get('fos_user.user_manager');
        $user = $userManager->createUser();
        $user->setUsername($username);
        $user->setEmail($email);
        $user->setPlainPassword($password);
        $userManager->updateUser($user);
        $this->assertFalse($user->hasRole('ROLE_SUPERADMIN'));
        $tester->run(array(
            'command'  => $command->getFullName(),
            'username' => $username,
        ), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));

        $userManager = $this->getService('fos_user.user_manager');
        $user = $userManager->findUserByUsername($username);

        $this->assertTrue($user instanceof User);
        $this->assertTrue($user->hasRole('ROLE_SUPERADMIN'));

        $userManager->deleteUser($user);
    }
 /**
  * Using the cli application itself, execute a command that already exists
  *
  * @param string $command
  * @param array $arguments
  * @return ApplicationTester
  */
 protected function runCommand($command, array $arguments = [])
 {
     $applicationTester = new ApplicationTester($this->getCli());
     $arguments = array_merge(['command' => $command], $arguments);
     $applicationTester->run($arguments);
     return $applicationTester;
 }
Esempio n. 12
0
 public function testRunWithConfigThrowExceptionIfExtensionClassDoesNotImplementsInterface()
 {
     $application = new ApplicationTester($this->carew);
     $statusCode = $application->run(array('command' => 'list', '--base-dir' => __DIR__ . '/Command/fixtures/config-exception-class-not-implements'));
     $this->assertSame(1, $statusCode);
     $this->assertContains('The class "stdClass" does not implements ExtensionInterface. See "config.yml".', $application->getDisplay());
 }
 /**
  * @When I run phpspec and answer :answer when asked if I want to generate the code
  * @When I run phpspec with the option :option and (I) answer :answer when asked if I want to generate the code
  */
 public function iRunPhpspecAndAnswerWhenAskedIfIWantToGenerateTheCode($answer, $option = null)
 {
     $arguments = array('command' => 'run');
     $this->addOptionToArguments($option, $arguments);
     $this->prompter->setAnswer($answer == 'y');
     $this->lastExitCode = $this->tester->run($arguments, array('interactive' => true));
 }
 public function testBundleCommandsHaveRightContainer()
 {
     $command = $this->getMockForAbstractClass('Symfony\\Bundle\\FrameworkBundle\\Command\\ContainerAwareCommand', array('foo'), '', true, true, true, array('setContainer'));
     $command->setCode(function () {
     });
     $command->expects($this->exactly(2))->method('setContainer');
     $application = new Application($this->getKernel(array()));
     $application->setAutoExit(false);
     $application->setCatchExceptions(false);
     $application->add($command);
     $tester = new ApplicationTester($application);
     // set container is called here
     $tester->run(array('command' => 'foo'));
     // as the container might have change between two runs, setContainer must called again
     $tester->run(array('command' => 'foo'));
 }
 public function testExecute()
 {
     $application = new Stratum();
     $application->setAutoExit(false);
     $tester = new ApplicationTester($application);
     $tester->run(['config file' => 'test/MySql/etc/stratum.cfg']);
     $this->assertSame(0, $tester->getStatusCode(), $tester->getDisplay());
 }
 /**
  * @test
  */
 public function shouldExecuteSuccessfully()
 {
     $app = new Application($this->srcDir, 'PHP Test Reporter', '1.0.0');
     $app->setAutoExit(false);
     $tester = new ApplicationTester($app);
     $status = $tester->run(['--stdout' => true]);
     $this->assertEquals(0, $status);
 }
Esempio n. 17
0
 public function testRun()
 {
     $application = new Application();
     $application->setAutoExit(false);
     $applicationTester = new ApplicationTester($application);
     $applicationTester->run([]);
     $this->assertContains('WebHelper version 0.2', $applicationTester->getDisplay([]));
 }
 public function testInvalidConnectionCausesError()
 {
     $kernel = $this->createKernel('badconn.yml');
     $console = new Application($kernel);
     $console->setAutoExit(false);
     $tester = new ApplicationTester($console);
     $this->assertGreaterThan(0, $tester->run(['pheanstalk:stats', 'tube' => ['default']]));
     $this->assertContains('Pheanstalk\\Exception', $tester->getDisplay());
 }
Esempio n. 19
0
 /**
  * @covers ImboCli\Application::__construct
  */
 public function testAddsCommands()
 {
     $application = new Application();
     $application->setAutoExit(false);
     $applicationTester = new ApplicationTester($application);
     $applicationTester->run(array('command' => 'list'));
     $output = $applicationTester->getDisplay();
     $this->assertContains('generate-private-key', $output);
 }
Esempio n. 20
0
 public function testLoadedCommandRuns()
 {
     $this->markTestSkipped('The ' . __CLASS__ . ' Symfony ... Console App ... so difficult to extend and test :[');
     $consoleApp = new Console();
     $consoleApp->setAutoExit(false);
     $tester = new ApplicationTester($consoleApp);
     $tester->run(array('command' => 'test:command', 'name' => 'Skip', '--skip-app-path' => './tests/fixtures/app'));
     $this->assertContains('Nice name you got there, Skip.', $tester->getDisplay());
 }
Esempio n. 21
0
 /**
  * Confirm that all the core commands with bootstrap level
  * `BOOT_SUGAR_ROOT` will be available by default.
  */
 public function testDebugOutput()
 {
     $kernel = $this->getKernel(Kernel::BOOT_INSULIN, null, true);
     $insulin = new Application($kernel);
     $insulin->setAutoExit(false);
     $insulinTester = new ApplicationTester($insulin);
     $insulinTester->run(array('command' => 'list'));
     $this->assertRegExp('/Memory usage: (.*)MB \\(peak: (.*)MB\\), time: (.*)s/', $insulinTester->getDisplay());
 }
Esempio n. 22
0
 public function testTestBeforeAndAfterAncestryCommand()
 {
     $application = new Application($this->container);
     $application->setAutoExit(false);
     $applicationTester = new ApplicationTester($application);
     $applicationTester->run(array("command" => "testAncestry1", "--verbose" => 3));
     $output = $applicationTester->getDisplay();
     $this->assertRegExp("/Skip a before task testAncestry1 to prevent infinite loop. Because of existing it in ancestry tasks./", $output);
     //        echo $output;
 }
Esempio n. 23
0
 public function testVerboseBuildForProject()
 {
     $project = $this->getMockBuilder('Sismo\\Project')->disableOriginalConstructor()->getMock();
     $this->app['sismo']->expects($this->once())->method('hasProject')->will($this->returnValue(true));
     $this->app['sismo']->expects($this->once())->method('getProject')->will($this->returnValue($project));
     $this->app['sismo']->expects($this->once())->method('build');
     $tester = new ApplicationTester($this->console);
     $this->assertEquals(0, $tester->run(array('command' => 'build', 'slug' => 'Twig', '--verbose' => true)));
     $this->assertEquals('Building Project "" (into "d41d8c")', trim($tester->getDisplay()));
 }
Esempio n. 24
0
 public function testExecute()
 {
     self::bootKernel();
     $application = new Application(static::$kernel);
     $application->setCatchExceptions(false);
     $application->setAutoExit(false);
     $tester = new ApplicationTester($application);
     $tester->run(['command' => 'api:swagger:export']);
     $this->assertJson($tester->getDisplay());
 }
 public function test_ExecutingCommandWithExcludeOptions_SkipsAppropriatePurging()
 {
     $result = $this->applicationTester->run(array('command' => 'core:purge-old-archive-data', 'dates' => array('2015-01-14'), '--exclude-outdated' => true, '--exclude-invalidated' => true, '--exclude-ranges' => true, '--skip-optimize-tables' => true, '-vvv' => true));
     $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
     self::$fixture->assertInvalidatedArchivesNotPurged(self::$fixture->january);
     self::$fixture->assertTemporaryArchivesNotPurged(self::$fixture->january);
     self::$fixture->assertCustomRangesNotPurged(self::$fixture->january);
     $this->assertContains("Skipping purge outdated archive data.", $this->applicationTester->getDisplay());
     $this->assertContains("Skipping purge invalidated archive data.", $this->applicationTester->getDisplay());
     $this->assertContains("Skipping OPTIMIZE TABLES.", $this->applicationTester->getDisplay());
 }
Esempio n. 26
0
 public function testProfileRun()
 {
     $application = new Application('1337');
     $application->setAutoExit(false);
     $application->setCatchExceptions(false);
     $tester = new ApplicationTester($application);
     $tester->run(array('--profile' => true), array('decorated' => false));
     $output = $tester->getDisplay(true);
     $this->assertContains('Environaut version 1337', $output);
     $this->assertContains('Memory usage: ', $output);
 }
Esempio n. 27
0
 public function testLimit()
 {
     $app = new Application();
     $app->add(new FizzBuzzCommand());
     $app->setAutoExit(false);
     // For testing
     $tester = new ApplicationTester($app);
     $tester->run(array('--limit' => '15'), array('decorated' => false));
     $this->assertContains("14", $tester->getDisplay(true));
     $this->assertContains("Fizz Buzz", $tester->getDisplay(true));
     $this->assertNotContains("16", $tester->getDisplay(true));
 }
 /**
  * @dataProvider provider
  */
 public function testRun($command, $result)
 {
     $app = new \Phinx\Console\PhinxApplication('testing');
     $app->setAutoExit(false);
     // Set autoExit to false when testing
     $app->setCatchExceptions(false);
     $appTester = new ApplicationTester($app);
     $appTester->run(array('command' => $command));
     $stream = $appTester->getOutput()->getStream();
     rewind($stream);
     $this->assertRegExp($result, stream_get_contents($stream));
 }
Esempio n. 29
0
 /**
  * @covers ::getCommandName
  * @covers ::getDefinition
  */
 public function testCanRunCommandWithoutSpecifyingName()
 {
     // Replace command by a mock.
     $mock = $this->getMockBuilder('MaartenStaa\\PHPTA\\CLI\\Command')->setMethods(array('execute'))->getMock();
     $mock->expects($this->once())->method('execute');
     $application = new Application();
     $application->setAutoExit(false);
     $application->add($mock);
     $tester = new ApplicationTester($application);
     $tester->run(array());
     $this->assertEquals('', $tester->getDisplay());
 }
Esempio n. 30
0
 /**
  * @param string $name
  * @param array  $params
  * @param string $dialogString
  */
 public function iRunDialogConsoleWithArrayParameters($name, array $params, $dialogString = 'Y')
 {
     $application = $this->initApplication();
     $this->tester = $applicationTester = new ApplicationTester($application);
     // Application needs to be run one time before calling find()
     // Otherwise for some reason CLI services are not injected in DIC
     $applicationTester->run(array());
     $command = $application->find($name);
     $dialog = $command->getHelper('dialog');
     $dialog->setInputStream($this->getInputStream($dialogString));
     $this->tester->run(array_merge(array('command' => $command->getName()), $params));
 }