X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fdrush%2Fdrush%2Ftests%2FSqlDumpTest.php;fp=vendor%2Fdrush%2Fdrush%2Ftests%2FSqlDumpTest.php;h=10ca95f484b1951eaffa14ddf4dfc9df7e223c68;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=0000000000000000000000000000000000000000;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/vendor/drush/drush/tests/SqlDumpTest.php b/vendor/drush/drush/tests/SqlDumpTest.php new file mode 100644 index 000000000..10ca95f48 --- /dev/null +++ b/vendor/drush/drush/tests/SqlDumpTest.php @@ -0,0 +1,119 @@ +dbDriver() == 'sqlite') { + $this->markTestSkipped('SQL Dump does not apply to SQLite.'); + return; + } + + $this->setUpDrupal(1, true); + $root = $this->webroot(); + $uri = $this->getUri(); + $full_dump_file_path = self::getSandbox() . DIRECTORY_SEPARATOR . 'full_db.sql'; + + $options = [ + 'result-file' => $full_dump_file_path, + // Last 5 entries are for D8+ + 'skip-tables-list' => 'hist*,cache*,router,config*,watchdog,key_valu*', + 'yes' => null, + ]; + + $this->drush('sql-dump', [], $options + ['simulate' => null]); + $this->assertContains('--ignore-table=unish_dev.cache_discovery', $this->getErrorOutput()); + + // Test --extra-dump option + if ($this->dbDriver() == 'mysql') { + $this->drush('sql-dump', [], array_merge($options, [], ['extra-dump' => '--skip-add-drop-table'])); + $this->assertFileExists($full_dump_file_path); + $full_dump_file = file_get_contents($full_dump_file_path); + $this->assertNotContains('DROP TABLE IF EXISTS', $full_dump_file); + } + + + // First, do a test without any aliases, and dump the whole database + $this->drush('sql-dump', [], $options); + $this->assertFileExists($full_dump_file_path); + $full_dump_file = file_get_contents($full_dump_file_path); + // Test that we have sane contents. + $this->assertContains('menu_tree', $full_dump_file); + // Test skip-files-list and wildcard expansion. + $this->assertNotContains('CREATE TABLE `key_value', $full_dump_file); + // Next, set up an alias file and run a couple of simulated + // tests to see if options are propagated correctly. + // Control: insure options are not set when not specified + unset($options['skip-tables-list']); + unlink($full_dump_file_path); + $this->drush('sql-dump', [], $options); + $this->assertFileExists($full_dump_file_path); + $full_dump_file = file_get_contents($full_dump_file_path); + // Test that we have sane contents. + $this->assertContains('CREATE TABLE `menu_tree', $full_dump_file); + // Test absence of skip-files-list. + $this->assertContains('CREATE TABLE `key_value', $full_dump_file); + + // @todo Aliases to local sites are no longer supported. Throw exception? + // $aliasPath = self::getSandbox() . '/aliases'; + // mkdir($aliasPath); + // $aliasFile = $aliasPath . '/bar.aliases.drushrc.php'; + // $aliasContents = << '$root', + // 'uri' => '$uri', + // 'site' => 'stage', + // 'command-specific' => array( + // 'sql-dump' => array( + // 'skip-tables-list' => 'hist*,cache*,router,config*,watchdog,key_valu*', + // ), + // ), + // ); + //EOD; + // file_put_contents($aliasFile, $aliasContents); + // $options['alias-path'] = $aliasPath; + // unlink($full_dump_file_path); + // // Now run again with an alias, and test to see if the option is there + // $this->drush('sql-dump', array(), array_merge($options), '@test'); + // $this->assertFileExists($full_dump_file_path); + // $full_dump_file = file_get_contents($full_dump_file_path); + // // Test that we have sane contents. + // $this->assertContains('queue', $full_dump_file); + // // Test skip-files-list and wildcard expansion. + // $this->assertNotContains('CREATE TABLE `key_value', $full_dump_file); + // // Repeat control test: options not recovered in absence of an alias. + // unlink($full_dump_file_path); + // $this->drush('sql-dump', array(), $options); + // $this->assertFileExists($full_dump_file_path); + // $full_dump_file = file_get_contents($full_dump_file_path); + // // Test that we have sane contents. + // $this->assertContains('queue', $full_dump_file); + // // Test absence of skip-files-list. + // $this->assertContains('CREATE TABLE `key_value', $full_dump_file); + // // Now run yet with @self, and test to see that Drush can recover the option + // // --skip-tables-list, defined in @test. + // unlink($full_dump_file_path); + // $this->drush('sql-dump', array(), $options, '@self'); + // $this->assertFileExists($full_dump_file_path); + // $full_dump_file = file_get_contents($full_dump_file_path); + // // Test that we have sane contents. + // $this->assertContains('queue', $full_dump_file); + // // Test absence of skip-files-list. + // $this->assertNotContains('CREATE TABLE `key_value', $full_dump_file); + } +}