10 use MediaWikiCoversValidator;
11 use PHPUnit4And6Compat;
16 [
'foo',
'bar',
'baz_',
'foo-bar-baz_' ],
18 [
null,
null,
'',
'' ],
19 'Invalid $database' =>
20 [ 0,
'bar',
'',
'',
true ],
22 [
'foo', 0,
'',
'',
true ],
24 [
'foo',
'bar', 0,
'',
true ],
26 [
'foo-bar',
'baz',
'baa_',
'foo?hbar-baz-baa_' ],
28 [
'foo?bar',
'baz',
'baa_',
'foo??bar-baz-baa_' ],
35 public function testConstruct( $db, $schema, $prefix, $id, $exception =
false ) {
44 $this->assertEquals( $db, $domain->getDatabase() );
45 $this->assertEquals( $schema, $domain->getSchema() );
46 $this->assertEquals( $prefix, $domain->getTablePrefix() );
47 $this->assertEquals( $id, $domain->getId() );
48 $this->assertEquals( $id, strval( $domain ),
'toString' );
54 [
'foo',
'foo',
null,
'' ],
56 [
'foo-bar_',
'foo',
null,
'bar_' ],
58 [
'foo-bar-baz_',
'foo',
'bar',
'baz_' ],
60 [
'foo?hbar-baz-baa_',
'foo-bar',
'baz',
'baa_' ],
62 [
'foo??bar-baz-baa_',
'foo?bar',
'baz',
'baa_' ],
64 [
'foo?bar-baz-baa_',
'foo?bar',
'baz',
'baa_' ],
66 [
'foo-bar-baz-baa_',
'',
'',
'',
true ],
68 [ DatabaseDomain::newUnspecified(),
null,
null,
'' ],
75 public function testNewFromId( $id, $db, $schema, $prefix, $exception =
false ) {
78 DatabaseDomain::newFromId( $id );
81 $domain = DatabaseDomain::newFromId( $id );
83 $this->assertEquals( $db, $domain->getDatabase() );
84 $this->assertEquals( $schema, $domain->getSchema() );
85 $this->assertEquals( $prefix, $domain->getTablePrefix() );
91 [
'foo',
'foo',
null,
'' ],
93 [
'foo-bar_',
'foo',
null,
'bar_' ],
95 [
'foo-bar-baz_',
'foo',
'bar',
'baz_' ],
97 [
'foo?hbar-baz-baa_',
'foo-bar',
'baz',
'baa_' ],
99 [
'foo??bar-baz-baa_',
'foo?bar',
'baz',
'baa_' ],
101 [
'',
null,
null,
'' ],
110 $fromId = DatabaseDomain::newFromId( $id );
115 $this->assertTrue( $constructed->equals( $id ),
'constructed equals string' );
116 $this->assertTrue( $fromId->equals( $id ),
'fromId equals string' );
118 $this->assertTrue( $constructed->equals( $fromId ),
'compare constructed to newId' );
119 $this->assertTrue( $fromId->equals( $constructed ),
'compare newId to constructed' );
126 $domain = DatabaseDomain::newUnspecified();
128 $this->assertTrue( $domain->equals(
'' ) );
129 $this->assertSame(
null, $domain->getDatabase() );
130 $this->assertSame(
null, $domain->getSchema() );
131 $this->assertSame(
'', $domain->getTablePrefix() );
137 [
'foo',
'foo',
null,
'',
true ],
139 [
'foo-bar_',
'foo',
null,
'bar_',
true ],
140 'db+schema+prefix' =>
141 [
'foo-bar-baz_',
'foo',
'bar',
'baz_',
true ],
142 'db+dontcare_schema+prefix' =>
143 [
'foo-bar-baz_',
'foo',
null,
'baz_',
false ],
145 [
'foo?hbar-baz-baa_',
'foo-bar',
'baz',
'baa_',
true ],
147 [
'foo??bar-baz-baa_',
'foo?bar',
'baz',
'baa_',
true ],
149 [
'',
null,
null,
'',
true ],
150 'dontcaredb+dontcaredbschema+prefix' =>
151 [
'mywiki-mediawiki-prefix_',
null,
null,
'prefix_',
false ],
152 'db+dontcareschema+prefix' =>
153 [
'mywiki-schema-prefix_',
'mywiki',
null,
'prefix_',
false ],
154 'postgres-db-jobqueue' =>
155 [
'postgres-mediawiki-',
'postgres',
null,
'',
false ]
164 $compareIdObj = DatabaseDomain::newFromId( $id );
169 $this->assertTrue( $fromId->isCompatible( $id ),
'constructed equals string' );
170 $this->assertTrue( $fromId->isCompatible( $compareIdObj ),
'fromId equals string' );
172 $this->assertEquals( $transitive, $compareIdObj->isCompatible( $fromId ),
173 'test transitivity of nulls components' );
178 'db+schema+prefix' =>
179 [
'mywiki-schema-prefix_',
'thatwiki',
'schema',
'prefix_' ],
180 'dontcaredb+dontcaredbschema+prefix' =>
181 [
'thatwiki-mediawiki-otherprefix_',
null,
null,
'prefix_' ],
182 'db+dontcareschema+prefix' =>
183 [
'notmywiki-schema-prefix_',
'mywiki',
null,
'prefix_' ],
192 $compareIdObj = DatabaseDomain::newFromId( $id );
197 $this->assertFalse( $fromId->isCompatible( $id ),
'constructed equals string' );
198 $this->assertFalse( $fromId->isCompatible( $compareIdObj ),
'fromId equals string' );
212 DatabaseDomain::newFromId(
'-schema-prefix' );
220 $this->assertTrue( $domain->isUnspecified() );
222 $this->assertFalse( $domain->isUnspecified() );
224 $this->assertFalse( $domain->isUnspecified() );