public function testOrder() { $expected_commands =
[];
// Expected commands, in a very specific order.
$asset_resolver = \Drupal::
service('asset.resolver'
);
$css_collection_renderer = \Drupal::
service('asset.css.collection_renderer'
);
$js_collection_renderer = \Drupal::
service('asset.js.collection_renderer'
);
$renderer = \Drupal::
service('renderer'
);
$build['#attached'
]['library'
][] = 'ajax_test/order-css-command';
$assets = AttachedAssets::
createFromRenderArray($build);
$css_render_array =
$css_collection_renderer->
render($asset_resolver->
getCssAssets($assets, FALSE, \Drupal::
languageManager()->
getCurrentLanguage()));
$expected_commands[1
] =
new AddCssCommand(array_column($css_render_array, '#attributes'
));
$build['#attached'
]['library'
][] = 'ajax_test/order-header-js-command';
$build['#attached'
]['library'
][] = 'ajax_test/order-footer-js-command';
$assets = AttachedAssets::
createFromRenderArray($build);
[$js_assets_header,
$js_assets_footer] =
$asset_resolver->
getJsAssets($assets, FALSE, \Drupal::
languageManager()->
getCurrentLanguage());
$js_header_render_array =
$js_collection_renderer->
render($js_assets_header);
$js_footer_render_array =
$js_collection_renderer->
render($js_assets_footer);
$expected_commands[2
] =
new AddJsCommand(array_column($js_header_render_array, '#attributes'
), 'head'
);
$expected_commands[3
] =
new AddJsCommand(array_column($js_footer_render_array, '#attributes'
));
$expected_commands[4
] =
new HtmlCommand('body', 'Hello, world!'
);
// Verify AJAX command order — this should always be the order: