class AjaxCommandsTest
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php \Drupal\Tests\Core\Ajax\AjaxCommandsTest
- 8.9.x core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php \Drupal\Tests\Core\Ajax\AjaxCommandsTest
- 11.x core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php \Drupal\Tests\Core\Ajax\AjaxCommandsTest
Test coverage for various classes in the \Drupal\Core\Ajax namespace.
@group Ajax
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait
- class \Drupal\Tests\Core\Ajax\AjaxCommandsTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of AjaxCommandsTest
File
-
core/
tests/ Drupal/ Tests/ Core/ Ajax/ AjaxCommandsTest.php, line 39
Namespace
Drupal\Tests\Core\AjaxView source
class AjaxCommandsTest extends UnitTestCase {
/**
* @return array
* - Array of css elements
* - Expected value
*/
public static function providerCss() {
return [
'empty' => [
[],
[
'command' => 'add_css',
'data' => [],
],
],
'single' => [
[
[
'href' => 'core/misc/example.css',
'media' => 'all',
],
],
[
'command' => 'add_css',
'data' => [
[
'href' => 'core/misc/example.css',
'media' => 'all',
],
],
],
],
'single-data-property' => [
[
[
'href' => 'core/misc/example.css',
'media' => 'all',
'data-test' => 'test',
],
],
[
'command' => 'add_css',
'data' => [
[
'href' => 'core/misc/example.css',
'media' => 'all',
'data-test' => 'test',
],
],
],
],
'multiple' => [
[
[
'href' => 'core/misc/example1.css',
'media' => 'all',
],
[
'href' => 'core/misc/example2.css',
'media' => 'all',
],
],
[
'command' => 'add_css',
'data' => [
[
'href' => 'core/misc/example1.css',
'media' => 'all',
],
[
'href' => 'core/misc/example2.css',
'media' => 'all',
],
],
],
],
];
}
/**
* @covers \Drupal\Core\Ajax\AddCssCommand
* @dataProvider providerCss
*/
public function testAddCssCommand($css, $expected) : void {
$command = new AddCssCommand($css);
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\AddCssCommand
* @group legacy
*/
public function testStringAddCssCommand() : void {
$this->expectDeprecation("The Drupal\\Core\\Ajax\\AddCssCommand with a string argument is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. See http://www.drupal.org/node/3154948");
$command = new AddCssCommand('<style>p{ text-decoration:blink; }</style>');
$expected = [
'command' => 'add_css',
'data' => '<style>p{ text-decoration:blink; }</style>',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\AfterCommand
*/
public function testAfterCommand() : void {
$command = new AfterCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'after',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\AlertCommand
*/
public function testAlertCommand() : void {
$command = new AlertCommand('Set condition 1 throughout the ship!');
$expected = [
'command' => 'alert',
'text' => 'Set condition 1 throughout the ship!',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\AnnounceCommand
*
* @dataProvider announceCommandProvider
*/
public function testAnnounceCommand($message, $priority, array $expected) : void {
if ($priority === NULL) {
$command = new AnnounceCommand($message);
}
else {
$command = new AnnounceCommand($message, $priority);
}
$expected_assets = new AttachedAssets();
$expected_assets->setLibraries([
'core/drupal.announce',
]);
$this->assertEquals($expected_assets, $command->getAttachedAssets());
$this->assertSame($expected, $command->render());
}
/**
* Data provider for testAnnounceCommand().
*/
public static function announceCommandProvider() {
return [
'no priority' => [
'Things are going to change!',
NULL,
[
'command' => 'announce',
'text' => 'Things are going to change!',
],
],
'polite priority' => [
'Things are going to change!',
'polite',
[
'command' => 'announce',
'text' => 'Things are going to change!',
'priority' => AnnounceCommand::PRIORITY_POLITE,
],
],
'assertive priority' => [
'Important!',
'assertive',
[
'command' => 'announce',
'text' => 'Important!',
'priority' => AnnounceCommand::PRIORITY_ASSERTIVE,
],
],
];
}
/**
* @covers \Drupal\Core\Ajax\AppendCommand
*/
public function testAppendCommand() : void {
$command = new AppendCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'append',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\BeforeCommand
*/
public function testBeforeCommand() : void {
$command = new BeforeCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'before',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\ChangedCommand
*/
public function testChangedCommand() : void {
$command = new ChangedCommand('#page-title', '#page-title-changed');
$expected = [
'command' => 'changed',
'selector' => '#page-title',
'asterisk' => '#page-title-changed',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\CssCommand
*/
public function testCssCommand() : void {
$command = new CssCommand('#page-title', [
'text-decoration' => 'blink',
]);
$command->setProperty('font-size', '40px')
->setProperty('font-weight', 'bold');
$expected = [
'command' => 'css',
'selector' => '#page-title',
'argument' => [
'text-decoration' => 'blink',
'font-size' => '40px',
'font-weight' => 'bold',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\DataCommand
*/
public function testDataCommand() : void {
$command = new DataCommand('#page-title', 'my-data', [
'key' => 'value',
]);
$expected = [
'command' => 'data',
'selector' => '#page-title',
'name' => 'my-data',
'value' => [
'key' => 'value',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\HtmlCommand
*/
public function testHtmlCommand() : void {
$command = new HtmlCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'html',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\InsertCommand
*/
public function testInsertCommand() : void {
$command = new InsertCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => NULL,
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\InvokeCommand
*/
public function testInvokeCommand() : void {
$command = new InvokeCommand('#page-title', 'myMethod', [
'var1',
'var2',
]);
$expected = [
'command' => 'invoke',
'selector' => '#page-title',
'method' => 'myMethod',
'args' => [
'var1',
'var2',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\PrependCommand
*/
public function testPrependCommand() : void {
$command = new PrependCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'prepend',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\RemoveCommand
*/
public function testRemoveCommand() : void {
$command = new RemoveCommand('#page-title');
$expected = [
'command' => 'remove',
'selector' => '#page-title',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\ReplaceCommand
*/
public function testReplaceCommand() : void {
$command = new ReplaceCommand('#page-title', '<p>New Text!</p>', [
'my-setting' => 'setting',
]);
$expected = [
'command' => 'insert',
'method' => 'replaceWith',
'selector' => '#page-title',
'data' => '<p>New Text!</p>',
'settings' => [
'my-setting' => 'setting',
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\RestripeCommand
*/
public function testRestripeCommand() : void {
$command = new RestripeCommand('#page-title');
$expected = [
'command' => 'restripe',
'selector' => '#page-title',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\SettingsCommand
*/
public function testSettingsCommand() : void {
$command = new SettingsCommand([
'key' => 'value',
], TRUE);
$expected = [
'command' => 'settings',
'settings' => [
'key' => 'value',
],
'merge' => TRUE,
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\OpenDialogCommand
*/
public function testOpenDialogCommand() : void {
$command = new OpenDialogCommand('#some-dialog', 'Title', '<p>Text!</p>', [
'url' => FALSE,
'width' => 500,
]);
$expected = [
'command' => 'openDialog',
'selector' => '#some-dialog',
'settings' => NULL,
'data' => '<p>Text!</p>',
'dialogOptions' => [
'url' => FALSE,
'width' => 500,
'title' => 'Title',
'modal' => FALSE,
],
];
$this->assertEquals($expected, $command->render());
$command->setDialogTitle('New title');
$expected['dialogOptions']['title'] = 'New title';
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\OpenModalDialogCommand
*/
public function testOpenModalDialogCommand() : void {
$command = $this->getMockBuilder('Drupal\\Core\\Ajax\\OpenModalDialogCommand')
->setConstructorArgs([
'Title',
'<p>Text!</p>',
[
'url' => 'example',
'width' => 500,
],
])
->onlyMethods([
'getRenderedContent',
])
->getMock();
// This method calls the render service, which isn't available. We want it
// to do nothing so we mock it to return a known value.
$command->expects($this->once())
->method('getRenderedContent')
->willReturn('rendered content');
$expected = [
'command' => 'openDialog',
'selector' => '#drupal-modal',
'settings' => NULL,
'data' => 'rendered content',
'dialogOptions' => [
'url' => 'example',
'width' => 500,
'title' => 'Title',
'modal' => TRUE,
],
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\CloseModalDialogCommand
*/
public function testCloseModalDialogCommand() : void {
$command = new CloseModalDialogCommand();
$expected = [
'command' => 'closeDialog',
'selector' => '#drupal-modal',
'persist' => FALSE,
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\CloseDialogCommand
*/
public function testCloseDialogCommand() : void {
$command = new CloseDialogCommand('#some-dialog', TRUE);
$expected = [
'command' => 'closeDialog',
'selector' => '#some-dialog',
'persist' => TRUE,
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\SetDialogOptionCommand
*/
public function testSetDialogOptionCommand() : void {
$command = new SetDialogOptionCommand('#some-dialog', 'width', '500');
$expected = [
'command' => 'setDialogOption',
'selector' => '#some-dialog',
'optionName' => 'width',
'optionValue' => '500',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\SetDialogTitleCommand
*/
public function testSetDialogTitleCommand() : void {
$command = new SetDialogTitleCommand('#some-dialog', 'Example');
$expected = [
'command' => 'setDialogOption',
'selector' => '#some-dialog',
'optionName' => 'title',
'optionValue' => 'Example',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\RedirectCommand
*/
public function testRedirectCommand() : void {
$command = new RedirectCommand('http://example.com');
$expected = [
'command' => 'redirect',
'url' => 'http://example.com',
];
$this->assertEquals($expected, $command->render());
}
/**
* @covers \Drupal\Core\Ajax\UpdateBuildIdCommand
*/
public function testUpdateBuildIdCommand() : void {
$old = 'ThisStringIsOld';
$new = 'ThisStringIsNew';
$command = new UpdateBuildIdCommand($old, $new);
$expected = [
'command' => 'update_build_id',
'old' => $old,
'new' => $new,
];
$this->assertEquals($expected, $command->render());
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|---|
AjaxCommandsTest::announceCommandProvider | public static | function | Data provider for testAnnounceCommand(). | ||
AjaxCommandsTest::providerCss | public static | function | |||
AjaxCommandsTest::testAddCssCommand | public | function | @covers \Drupal\Core\Ajax\AddCssCommand @dataProvider providerCss |
||
AjaxCommandsTest::testAfterCommand | public | function | @covers \Drupal\Core\Ajax\AfterCommand | ||
AjaxCommandsTest::testAlertCommand | public | function | @covers \Drupal\Core\Ajax\AlertCommand | ||
AjaxCommandsTest::testAnnounceCommand | public | function | @covers \Drupal\Core\Ajax\AnnounceCommand | ||
AjaxCommandsTest::testAppendCommand | public | function | @covers \Drupal\Core\Ajax\AppendCommand | ||
AjaxCommandsTest::testBeforeCommand | public | function | @covers \Drupal\Core\Ajax\BeforeCommand | ||
AjaxCommandsTest::testChangedCommand | public | function | @covers \Drupal\Core\Ajax\ChangedCommand | ||
AjaxCommandsTest::testCloseDialogCommand | public | function | @covers \Drupal\Core\Ajax\CloseDialogCommand | ||
AjaxCommandsTest::testCloseModalDialogCommand | public | function | @covers \Drupal\Core\Ajax\CloseModalDialogCommand | ||
AjaxCommandsTest::testCssCommand | public | function | @covers \Drupal\Core\Ajax\CssCommand | ||
AjaxCommandsTest::testDataCommand | public | function | @covers \Drupal\Core\Ajax\DataCommand | ||
AjaxCommandsTest::testHtmlCommand | public | function | @covers \Drupal\Core\Ajax\HtmlCommand | ||
AjaxCommandsTest::testInsertCommand | public | function | @covers \Drupal\Core\Ajax\InsertCommand | ||
AjaxCommandsTest::testInvokeCommand | public | function | @covers \Drupal\Core\Ajax\InvokeCommand | ||
AjaxCommandsTest::testOpenDialogCommand | public | function | @covers \Drupal\Core\Ajax\OpenDialogCommand | ||
AjaxCommandsTest::testOpenModalDialogCommand | public | function | @covers \Drupal\Core\Ajax\OpenModalDialogCommand | ||
AjaxCommandsTest::testPrependCommand | public | function | @covers \Drupal\Core\Ajax\PrependCommand | ||
AjaxCommandsTest::testRedirectCommand | public | function | @covers \Drupal\Core\Ajax\RedirectCommand | ||
AjaxCommandsTest::testRemoveCommand | public | function | @covers \Drupal\Core\Ajax\RemoveCommand | ||
AjaxCommandsTest::testReplaceCommand | public | function | @covers \Drupal\Core\Ajax\ReplaceCommand | ||
AjaxCommandsTest::testRestripeCommand | public | function | @covers \Drupal\Core\Ajax\RestripeCommand | ||
AjaxCommandsTest::testSetDialogOptionCommand | public | function | @covers \Drupal\Core\Ajax\SetDialogOptionCommand | ||
AjaxCommandsTest::testSetDialogTitleCommand | public | function | @covers \Drupal\Core\Ajax\SetDialogTitleCommand | ||
AjaxCommandsTest::testSettingsCommand | public | function | @covers \Drupal\Core\Ajax\SettingsCommand | ||
AjaxCommandsTest::testStringAddCssCommand | public | function | @covers \Drupal\Core\Ajax\AddCssCommand @group legacy |
||
AjaxCommandsTest::testUpdateBuildIdCommand | public | function | @covers \Drupal\Core\Ajax\UpdateBuildIdCommand | ||
PhpUnitWarnings::$deprecationWarnings | private static | property | Deprecation warnings from PHPUnit to raise with @trigger_error(). | ||
PhpUnitWarnings::addWarning | public | function | Converts PHPUnit deprecation warnings to E_USER_DEPRECATED. | ||
RandomGeneratorTrait::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | ||
RandomGeneratorTrait::randomMachineName | protected | function | Generates a unique random string containing letters and numbers. | ||
RandomGeneratorTrait::randomObject | public | function | Generates a random PHP object. | ||
RandomGeneratorTrait::randomString | public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | ||
RandomGeneratorTrait::randomStringValidate | Deprecated | public | function | Callback for random string validation. | |
UnitTestCase::$root | protected | property | The app root. | 1 | |
UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | ||
UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | ||
UnitTestCase::getConfigStorageStub | public | function | Returns a stub config storage that returns the supplied configuration. | ||
UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | ||
UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | ||
UnitTestCase::setUp | protected | function | 358 | ||
UnitTestCase::setUpBeforeClass | public static | function | |||
UnitTestCase::__get | public | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.