annotate vendor/consolidation/site-alias/tests/SiteAliasFileLoaderTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents a9cd425dd02b
children
rev   line source
Chris@4 1 <?php
Chris@4 2 namespace Consolidation\SiteAlias;
Chris@4 3
Chris@4 4 use PHPUnit\Framework\TestCase;
Chris@4 5 use Consolidation\SiteAlias\Util\YamlDataFileLoader;
Chris@4 6
Chris@4 7 class SiteAliasFileLoaderTest extends TestCase
Chris@4 8 {
Chris@4 9 use FixtureFactory;
Chris@4 10 use FunctionUtils;
Chris@4 11
Chris@4 12 function setUp()
Chris@4 13 {
Chris@4 14 $this->sut = new SiteAliasFileLoader();
Chris@4 15
Chris@4 16 $ymlLoader = new YamlDataFileLoader();
Chris@4 17 $this->sut->addLoader('yml', $ymlLoader);
Chris@4 18 }
Chris@4 19
Chris@4 20 public function testLoadWildAliasFile()
Chris@4 21 {
Chris@4 22 $siteAliasFixtures = $this->fixturesDir() . '/sitealiases/sites';
Chris@4 23 $this->assertTrue(is_dir($siteAliasFixtures));
Chris@4 24 $this->assertTrue(is_file($siteAliasFixtures . '/wild.site.yml'));
Chris@4 25
Chris@4 26 $this->sut->addSearchLocation($siteAliasFixtures);
Chris@4 27
Chris@4 28 // Try to get the dev environment.
Chris@4 29 $name = SiteAliasName::parse('@wild.dev');
Chris@4 30 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 31 $this->assertTrue($result instanceof SiteAlias);
Chris@4 32 $this->assertEquals('/path/to/wild', $result->get('root'));
Chris@4 33 $this->assertEquals('bar', $result->get('foo'));
Chris@4 34
Chris@4 35 // Try to fetch an environment that does not exist. Since this is
Chris@4 36 // a wildcard alias, there should
Chris@4 37 $name = SiteAliasName::parse('@wild.other');
Chris@4 38 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 39 $this->assertTrue($result instanceof SiteAlias);
Chris@4 40 $this->assertEquals('/wild/path/to/wild', $result->get('root'));
Chris@4 41 $this->assertEquals('bar', $result->get('foo'));
Chris@4 42
Chris@4 43 }
Chris@4 44
Chris@4 45 public function testLoadSingleAliasFile()
Chris@4 46 {
Chris@4 47 $siteAliasFixtures = $this->fixturesDir() . '/sitealiases/sites';
Chris@4 48 $this->assertTrue(is_dir($siteAliasFixtures));
Chris@4 49 $this->assertTrue(is_file($siteAliasFixtures . '/simple.site.yml'));
Chris@4 50 $this->assertTrue(is_file($siteAliasFixtures . '/single.site.yml'));
Chris@4 51
Chris@4 52 $this->sut->addSearchLocation($siteAliasFixtures);
Chris@4 53
Chris@4 54 // Add a secondary location
Chris@4 55 $siteAliasFixtures = $this->fixturesDir() . '/sitealiases/other';
Chris@4 56 $this->assertTrue(is_dir($siteAliasFixtures));
Chris@4 57 $this->sut->addSearchLocation($siteAliasFixtures);
Chris@4 58
Chris@4 59 // Look for a simple alias with no environments defined
Chris@4 60 $name = new SiteAliasName('simple');
Chris@4 61 $this->assertEquals('simple', $name->sitename());
Chris@4 62 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 63 $this->assertTrue($result instanceof SiteAlias);
Chris@4 64 $this->assertEquals('/path/to/simple', $result->get('root'));
Chris@4 65
Chris@4 66 // Look for a single alias without an environment specified.
Chris@4 67 $name = new SiteAliasName('single');
Chris@4 68 $this->assertEquals('single', $name->sitename());
Chris@4 69 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 70 $this->assertTrue($result instanceof SiteAlias);
Chris@4 71 $this->assertEquals('/path/to/single', $result->get('root'));
Chris@4 72 $this->assertEquals('bar', $result->get('foo'));
Chris@4 73
Chris@4 74 // Same test, but with environment explicitly requested.
Chris@4 75 $name = SiteAliasName::parse('@single.alternate');
Chris@4 76 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 77 $this->assertTrue($result instanceof SiteAlias);
Chris@4 78 $this->assertEquals('/alternate/path/to/single', $result->get('root'));
Chris@4 79 $this->assertEquals('bar', $result->get('foo'));
Chris@4 80
Chris@4 81 // Same test, but with location explicitly filtered.
Chris@4 82 $name = SiteAliasName::parse('@other.single.dev');
Chris@4 83 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@5 84 $this->assertTrue($result instanceof SiteAlias);
Chris@4 85 $this->assertEquals('/other/path/to/single', $result->get('root'));
Chris@4 86 $this->assertEquals('baz', $result->get('foo'));
Chris@4 87
Chris@4 88 // Try to fetch an alias that does not exist.
Chris@4 89 $name = SiteAliasName::parse('@missing');
Chris@4 90 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@4 91 $this->assertFalse($result);
Chris@4 92
Chris@4 93 // Try to fetch an alias using a missing location
Chris@4 94 $name = SiteAliasName::parse('@missing.single.alternate');
Chris@4 95 $result = $this->callProtected('loadSingleAliasFile', [$name]);
Chris@4 96 $this->assertFalse($result);
Chris@4 97 }
Chris@4 98
Chris@4 99 public function testLoad()
Chris@4 100 {
Chris@4 101 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
Chris@4 102
Chris@4 103 // Look for a simple alias with no environments defined
Chris@4 104 $name = new SiteAliasName('simple');
Chris@4 105 $result = $this->sut->load($name);
Chris@5 106 $this->assertTrue($result instanceof SiteAlias);
Chris@4 107 $this->assertEquals('/path/to/simple', $result->get('root'));
Chris@4 108
Chris@4 109 // Look for a single alias without an environment specified.
Chris@4 110 $name = new SiteAliasName('single');
Chris@4 111 $result = $this->sut->load($name);
Chris@5 112 $this->assertTrue($result instanceof SiteAlias);
Chris@4 113 $this->assertEquals('/path/to/single', $result->get('root'));
Chris@4 114 $this->assertEquals('bar', $result->get('foo'));
Chris@4 115
Chris@4 116 // Same test, but with environment explicitly requested.
Chris@4 117 $name = new SiteAliasName('single', 'alternate');
Chris@4 118 $result = $this->sut->load($name);
Chris@5 119 $this->assertTrue($result instanceof SiteAlias);
Chris@4 120 $this->assertEquals('/alternate/path/to/single', $result->get('root'));
Chris@4 121 $this->assertEquals('bar', $result->get('foo'));
Chris@4 122
Chris@4 123 // Try to fetch an alias that does not exist.
Chris@4 124 $name = new SiteAliasName('missing');
Chris@4 125 $result = $this->sut->load($name);
Chris@4 126 $this->assertFalse($result);
Chris@4 127
Chris@4 128 // Try to fetch an alias that does not exist.
Chris@4 129 $name = new SiteAliasName('missing');
Chris@4 130 $result = $this->sut->load($name);
Chris@4 131 $this->assertFalse($result);
Chris@4 132 }
Chris@4 133
Chris@4 134 public function testLoadAll()
Chris@4 135 {
Chris@4 136 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
Chris@4 137 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/other');
Chris@4 138
Chris@4 139 $all = $this->sut->loadAll();
Chris@4 140 $this->assertEquals('@other.bob.dev,@other.bob.other,@other.fred.dev,@other.fred.other,@other.single.dev,@other.single.other,@single.alternate,@single.dev,@single.empty,@wild.*,@wild.dev', implode(',', array_keys($all)));
Chris@4 141 }
Chris@4 142
Chris@4 143 public function testLoadMultiple()
Chris@4 144 {
Chris@4 145 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
Chris@4 146 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/other');
Chris@4 147
Chris@4 148 $aliases = $this->sut->loadMultiple('single');
Chris@4 149 $this->assertEquals('@single.dev,@single.alternate,@single.empty,@other.single.dev,@other.single.other', implode(',', array_keys($aliases)));
Chris@4 150 }
Chris@4 151
Chris@4 152 public function testLoadLocation()
Chris@4 153 {
Chris@4 154 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
Chris@4 155 $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/other');
Chris@4 156
Chris@4 157 $aliases = $this->sut->loadLocation('other');
Chris@4 158 $this->assertEquals('@other.bob.dev,@other.bob.other,@other.fred.dev,@other.fred.other,@other.single.dev,@other.single.other', implode(',', array_keys($aliases)));
Chris@4 159 }
Chris@4 160 }