Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5986751
ParsoidRenderIdTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
ParsoidRenderIdTest.php
View Options
<?php
namespace
MediaWiki\Tests\Unit\Edit
;
use
InvalidArgumentException
;
use
MediaWiki\Edit\ParsoidRenderID
;
use
MediaWikiUnitTestCase
;
class
ParsoidRenderIdTest
extends
MediaWikiUnitTestCase
{
/**
* @covers \MediaWiki\Edit\ParsoidRenderID
*/
public
function
testConstruction
()
{
$renderID
=
new
ParsoidRenderID
(
1
,
'123-abc'
);
$this
->
assertSame
(
1
,
$renderID
->
getRevisionID
()
);
$this
->
assertEquals
(
'123-abc'
,
$renderID
->
getUniqueID
()
);
$this
->
assertEquals
(
'1/123-abc'
,
$renderID
->
__toString
()
);
}
/**
* @covers \MediaWiki\Edit\ParsoidRenderID::newFromKey
*/
public
function
testRoundTrip
()
{
$renderID
=
new
ParsoidRenderID
(
1
,
'123-abc'
);
$stringRenderID
=
$renderID
->
__toString
();
$backToRenderID
=
$renderID
::
newFromKey
(
$stringRenderID
);
$this
->
assertSame
(
$stringRenderID
,
$backToRenderID
->
__toString
()
);
}
/**
* @dataProvider provideETags
*
* @param string $eTag
* @param \MediaWiki\Edit\ParsoidRenderID $renderId
*
* @covers \MediaWiki\Edit\ParsoidRenderID::newFromETag
*/
public
function
testNewFromETag
(
$eTag
,
$renderId
)
{
$actual
=
ParsoidRenderID
::
newFromETag
(
$eTag
);
$this
->
assertSame
(
$renderId
->
getKey
(),
$actual
->
getKey
()
);
}
public
static
function
provideETags
()
{
yield
[
'"1/abc/stash"'
,
new
ParsoidRenderID
(
1
,
'abc'
)
];
yield
[
'"1/abc"'
,
new
ParsoidRenderID
(
1
,
'abc'
)
];
yield
[
'"1/abc/stash/stash"'
,
new
ParsoidRenderID
(
1
,
'abc'
)
];
yield
[
'W/"1/abc"'
,
new
ParsoidRenderID
(
1
,
'abc'
)
];
}
/**
* @dataProvider provideBadETags
*
* @param string $eTag
*
* @covers \MediaWiki\Edit\ParsoidRenderID::newFromETag
*/
public
function
testNewFromBadETag
(
$eTag
)
{
// make sure it doesn't explode
$this
->
assertNull
(
ParsoidRenderID
::
newFromETag
(
$eTag
)
);
}
public
static
function
provideBadETags
()
{
yield
[
''
];
yield
[
'0'
];
yield
[
'""'
];
yield
[
'"/"'
];
yield
[
'"x/y"'
];
yield
[
'"1/foo"XXX'
];
yield
[
'XXX"1/foo"'
];
}
/**
* @dataProvider provideNewFromKey
* @covers \MediaWiki\Edit\ParsoidRenderID::newFromKey
*/
public
function
testNewFromKey
(
string
$key
,
ParsoidRenderID
$expected
):
void
{
$actual
=
ParsoidRenderID
::
newFromKey
(
$key
);
$this
->
assertSame
(
$expected
->
getKey
(),
$actual
->
getKey
()
);
}
public
static
function
provideNewFromKey
():
iterable
{
yield
[
'1/abc'
,
new
ParsoidRenderID
(
1
,
'abc'
)
];
yield
[
'2/bar'
,
new
ParsoidRenderID
(
2
,
'bar'
)
];
}
/**
* @dataProvider provideBadKeys
* @covers \MediaWiki\Edit\ParsoidRenderID::newFromKey
*/
public
function
testBadNewFromKey
(
$key
):
void
{
$this
->
expectException
(
InvalidArgumentException
::
class
);
$this
->
expectExceptionMessage
(
"Bad key: $key"
);
ParsoidRenderID
::
newFromKey
(
$key
);
}
public
static
function
provideBadKeys
():
iterable
{
yield
[
''
];
yield
[
'1'
];
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Oct 4, 00:12 (2 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
96/35/dd8134120a40623781dab5c4c6f6
Default Alt Text
ParsoidRenderIdTest.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment