You are here

public function AttachedAssetsTest::testAddJsSettings in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Asset/AttachedAssetsTest.php \Drupal\KernelTests\Core\Asset\AttachedAssetsTest::testAddJsSettings()

Tests adding JavaScript settings.

File

core/tests/Drupal/KernelTests/Core/Asset/AttachedAssetsTest.php, line 99

Class

AttachedAssetsTest
Tests #attached assets: attached asset libraries and JavaScript settings.

Namespace

Drupal\KernelTests\Core\Asset

Code

public function testAddJsSettings() {

  // Add a file in order to test default settings.
  $build['#attached']['library'][] = 'core/drupalSettings';
  $assets = AttachedAssets::createFromRenderArray($build);
  $this
    ->assertEqual([], $assets
    ->getSettings(), 'JavaScript settings on $assets are empty.');
  $javascript = $this->assetResolver
    ->getJsAssets($assets, FALSE)[1];
  $this
    ->assertArrayHasKey('currentPath', $javascript['drupalSettings']['data']['path']);
  $this
    ->assertArrayHasKey('currentPath', $assets
    ->getSettings()['path']);
  $assets
    ->setSettings([
    'drupal' => 'rocks',
    'dries' => 280342800,
  ]);
  $javascript = $this->assetResolver
    ->getJsAssets($assets, FALSE)[1];
  $this
    ->assertEqual(280342800, $javascript['drupalSettings']['data']['dries'], 'JavaScript setting is set correctly.');
  $this
    ->assertEqual('rocks', $javascript['drupalSettings']['data']['drupal'], 'The other JavaScript setting is set correctly.');
}