Files
icehrm/lib/composer/vendor/consolidation/robo/tests/cli/PackExtractCept.php
2017-09-03 20:39:22 +02:00

58 lines
2.5 KiB
PHP

<?php
$I = new CliGuy($scenario);
$I->wantTo('archive directory and then extract it again with Archive and Extract tasks');
$I->amInPath(codecept_data_dir().'sandbox');
$I->seeDirFound('some/deeply/nested');
$I->seeFileFound('structu.re', 'some/deeply/nested');
$I->seeFileFound('existing_file', 'some/deeply');
// Test a bunch of archive types that we support
foreach (['zip', 'tar', 'tar.gz', 'tar.bz2', 'tgz'] as $archiveType) {
// First, take everything from the folder 'some/deeply' and make
// an archive for it located in 'deep'
$I->taskPack("deeply.$archiveType")
->add(['deep' => 'some/deeply'])
->run();
$I->seeFileFound("deeply.$archiveType");
// We are next going to extract the archive we created, this time
// putting it into a folder called "extracted-$archiveType" (different
// for each archive type we test). We rely on the default behavior
// of our extractor to remove the top-level directory in the archive
// ("deeply").
$I->taskExtract("deeply.$archiveType")
->to("extracted-$archiveType")
->preserveTopDirectory(false) // this is the default
->run();
$I->seeDirFound("extracted-$archiveType");
$I->seeDirFound("extracted-$archiveType/nested");
$I->seeFileFound('structu.re', "extracted-$archiveType/nested");
// Next, we'll extract the same archive again, this time preserving
// the top-level folder.
$I->taskExtract("deeply.$archiveType")
->to("preserved-$archiveType")
->preserveTopDirectory()
->run();
$I->seeDirFound("preserved-$archiveType");
$I->seeDirFound("preserved-$archiveType/deep/nested");
$I->seeFileFound('structu.re', "preserved-$archiveType/deep/nested");
// Make another archive, this time composed of fanciful locations
$I->taskPack("composed.$archiveType")
->add(['a/b/existing_file' => 'some/deeply/existing_file'])
->add(['x/y/z/structu.re' => 'some/deeply/nested/structu.re'])
->run();
$I->seeFileFound("composed.$archiveType");
// Extract our composed archive, and see if the resulting file
// structure matches expectations.
$I->taskExtract("composed.$archiveType")
->to("decomposed-$archiveType")
->preserveTopDirectory()
->run();
$I->seeDirFound("decomposed-$archiveType");
$I->seeDirFound("decomposed-$archiveType/x/y/z");
$I->seeFileFound('structu.re', "decomposed-$archiveType/x/y/z");
$I->seeDirFound("decomposed-$archiveType/a/b");
$I->seeFileFound('existing_file', "decomposed-$archiveType/a/b");
}