From 2a585e620b3fe17c7d61e8631c3b0b004fdbf83c Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 12 Apr 2022 10:34:42 +0200 Subject: [PATCH] Add integration test for library with theme and theme designer resources --- .../resources/theme/j/.theming | 5 +++++ .../theme/j/themes/somefancytheme/.theming | 6 +++++ .../theme/j/themes/somefancytheme/Button.less | 3 +++ .../j/themes/somefancytheme/css_variables.css | 3 +++ .../themes/somefancytheme/css_variables.less | 14 ++++++++++++ .../somefancytheme/css_variables.source.less | 5 +++++ .../j/themes/somefancytheme/library-RTL.css | 3 +++ .../somefancytheme/library-parameters.json | 1 + .../theme/j/themes/somefancytheme/library.css | 3 +++ .../j/themes/somefancytheme/library.less | 10 +++++++++ .../themes/somefancytheme/library.source.less | 2 ++ .../somefancytheme/library_skeleton-RTL.css | 1 + .../somefancytheme/library_skeleton.css | 1 + test/lib/builder/builder.js | 22 ++++++++++++++++++- 14 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming new file mode 100644 index 000000000..d4edad9a4 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming @@ -0,0 +1,5 @@ +{ + "sEntity": "Library", + "sId": "theme/j", + "sVersion": "1.0.0" +} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming new file mode 100644 index 000000000..4878adda8 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming @@ -0,0 +1,6 @@ +{ + "sEntity": "Theme", + "sId": "somefancytheme", + "sVendor": "SAP", + "oExtends": "base" +} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less new file mode 100644 index 000000000..ca968183f --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less @@ -0,0 +1,3 @@ +.someClass { + color: @someColor +} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css new file mode 100644 index 000000000..6232d9e35 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css @@ -0,0 +1,3 @@ +:root{--someColor:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less new file mode 100644 index 000000000..91ce28694 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less @@ -0,0 +1,14 @@ +/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +@someColor: #000000; + +:root { +--someColor: @someColor; +} + +/* END "css_variables.source.less" */ + +@import "../../../../sap/ui/core/themes/somefancytheme/global.less"; diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less new file mode 100644 index 000000000..5a6ce08e9 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less @@ -0,0 +1,5 @@ +@someColor: #000000; + +:root { +--someColor: @someColor; +} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json new file mode 100644 index 000000000..a190cda03 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json @@ -0,0 +1 @@ +{"someColor":"#000"} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less new file mode 100644 index 000000000..24c4ca167 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less @@ -0,0 +1,10 @@ +/* NOTE: This file was generated as an optimized version of "library.source.less" for the Theme Designer. */ + +@someColor: black; +/* START "Button.less" */ +.someClass { + color: @someColor +} + +/* END "Button.less" */ + diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less new file mode 100644 index 000000000..834de919e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less @@ -0,0 +1,2 @@ +@someColor: black; +@import "Button.less"; diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index f8f5a0c8c..6153b353b 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -952,6 +952,26 @@ test.serial("Build library with theme configured for CSS variables", (t) => { }); }); +test.serial("Build library with theme configured for CSS variables and theme designer resources", (t) => { + const destPath = "./test/tmp/build/theme.j/dest-css-variables-theme-designer-resources"; + const expectedPath = "./test/expected/build/theme.j/dest-css-variables-theme-designer-resources"; + return builder.build({ + tree: themeJTree, + cssVariables: true, + destPath, + includedTasks: ["generateThemeDesignerResources"] + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + test.serial("Build theme-library with CSS variables", (t) => { const destPath = "./test/tmp/build/theme.library.e/dest-css-variables"; const expectedPath = "./test/expected/build/theme.library.e/dest-css-variables"; @@ -971,7 +991,7 @@ test.serial("Build theme-library with CSS variables", (t) => { }); }); -test.serial("Build theme-library with CSS variables and Theme Designer Resources", (t) => { +test.serial("Build theme-library with CSS variables and theme designer resources", (t) => { const destPath = "./test/tmp/build/theme.library.e/dest-css-variables-theme-designer-resources"; const expectedPath = "./test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources"; return builder.build({