Skip to content

Commit

Permalink
fix: Correctly add module content type to script tags when scripts …
Browse files Browse the repository at this point in the history
…with versions are used

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
  • Loading branch information
susnux authored and backportbot-nextcloud[bot] committed Jul 18, 2023
1 parent 281117a commit c63942c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/private/legacy/template/functions.php
Expand Up @@ -101,7 +101,8 @@ function emit_script_tag(string $src, string $script_content = '', string $conte
*/
function emit_script_loading_tags($obj) {
foreach ($obj['jsfiles'] as $jsfile) {
$type = str_ends_with($jsfile, '.mjs') ? 'module' : '';
$fileName = explode('?', $jsfile, 2)[0];
$type = str_ends_with($fileName, '.mjs') ? 'module' : '';
emit_script_tag($jsfile, '', $type);
}
if (!empty($obj['inline_ocjs'])) {
Expand Down
12 changes: 12 additions & 0 deletions tests/lib/TemplateFunctionsTest.php
Expand Up @@ -86,6 +86,18 @@ public function testEmitScriptLoadingTags() {
]);
}

public function testEmitScriptLoadingTagsWithVersion() {
// Test mjs js and inline content
$pattern = '/src="some\.mjs\?v=ab123cd"[^>]+type="module"[^>]*>.+\n'; // some.mjs with type = module
$pattern .= '<script[^>]+src="other\.js\?v=12abc34"[^>]*>.+\n'; // other.js as plain javascript
$pattern .= '/'; // no flags

$this->expectOutputRegex($pattern);
emit_script_loading_tags([
'jsfiles' => ['some.mjs?v=ab123cd', 'other.js?v=12abc34'],
]);
}

// ---------------------------------------------------------------------------
// Test relative_modified_date with dates only
// ---------------------------------------------------------------------------
Expand Down

0 comments on commit c63942c

Please sign in to comment.