diff --git a/lib/client/discovery.js b/lib/client/discovery.js index 777bbafc..dbc5e120 100644 --- a/lib/client/discovery.js +++ b/lib/client/discovery.js @@ -161,9 +161,12 @@ const assign = require("lodash.assign"); } const origTestSuite = window.jsUnitTestSuite; + const origTopTestSuite = top.jsUnitTestSuite; window.jsUnitTestSuite = TestSuite; + top.jsUnitTestSuite = TestSuite; return checkTestPage({fullpage: sEntryPage}).finally(function() { window.jsUnitTestSuite = origTestSuite; + top.jsUnitTestSuite = origTopTestSuite; }); } diff --git a/package.json b/package.json index c9b6932e..0bdac98e 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "itest:app-no-htmlrunner": "karma start test/integration/application-no-htmlrunner/karma.conf.js", "itest:library-proxy": "karma start test/integration/library-proxy/karma.conf.js", "itest:library-ui5-tooling": "karma start test/integration/library-ui5-tooling/karma.conf.js", + "itest:library-ui5-tooling-multiple-testsuites": "karma start test/integration/library-ui5-tooling-multiple-testsuites/karma.conf.js", "itest:library-custompath": "karma start test/integration/library-custompath/karma.conf.js", "postinstall": "webpack --silent", "preversion": "npm test", diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/karma.conf.js b/test/integration/library-ui5-tooling-multiple-testsuites/karma.conf.js new file mode 100644 index 00000000..39ea7f1a --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/karma.conf.js @@ -0,0 +1,20 @@ +module.exports = function(config) { + "use strict"; + + require("../karma-base.conf")(config); + config.set({ + + frameworks: ["ui5"], + + ui5: { + testpage: "test/sap/test/lib/qunit/testsuite.qunit.html" + }, + + plugins: [ + require("../../../lib"), + require("karma-chrome-launcher") + ], + + + }); +}; diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/package.json b/test/integration/library-ui5-tooling-multiple-testsuites/package.json new file mode 100644 index 00000000..11edcdc1 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/package.json @@ -0,0 +1,7 @@ +{ + "name": "library-ui5-tooling-multiple-testsuites", + "version": "1.0.0", + "dependencies": { + "@openui5/sap.ui.core": "*" + } +} diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/src/sap/test/lib/.library b/test/integration/library-ui5-tooling-multiple-testsuites/src/sap/test/lib/.library new file mode 100644 index 00000000..e69de29b diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/src/sap/test/lib/library.js b/test/integration/library-ui5-tooling-multiple-testsuites/src/sap/test/lib/library.js new file mode 100644 index 00000000..340c6644 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/src/sap/test/lib/library.js @@ -0,0 +1,13 @@ +sap.ui.define(["sap/ui/core/library"], function() { + "use strict"; + + sap.ui.getCore().initLibrary({ + name: "sap.test.lib", + dependencies: ["sap.ui.core"], + controls: [], + elements: [], + noLibraryCSS: true + }); + + return sap.test.lib; +}); diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/.dotfile b/test/integration/library-ui5-tooling-multiple-testsuites/test/.dotfile new file mode 100644 index 00000000..a21a8f59 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/.dotfile @@ -0,0 +1 @@ +dotfile \ No newline at end of file diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/foo/test.qunit.html b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/foo/test.qunit.html new file mode 100644 index 00000000..92d4c44e --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/foo/test.qunit.html @@ -0,0 +1,15 @@ + + + + + QUnit Test + + + + + + + +
+ + diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.html b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.html new file mode 100644 index 00000000..37e660a9 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.html @@ -0,0 +1,15 @@ + + + + + QUnit Test + + + + + + + +
+ + diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.js b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.js new file mode 100644 index 00000000..48ca5a07 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/test.qunit.js @@ -0,0 +1,18 @@ +/* global QUnit */ + +QUnit.config.autostart = false; + +sap.ui.getCore().attachInit(function() { + "use strict"; + + QUnit.test("Karma", function(assert) { + assert.ok(parent.__karma__.files["/base/src/sap/test/lib/.library"], "Karma src files should contain dotfiles"); + assert.ok(parent.__karma__.files["/base/test/.dotfile"], "Karma test files should contain dotfiles"); + }); + + QUnit.test("sap.test.lib", function(assert) { + assert.ok(sap.ui.getCore().getLoadedLibraries()["sap.test.lib"], "Library has been loaded"); + }); + + QUnit.start(); +}); diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.html b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.html new file mode 100644 index 00000000..b02f5bd9 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.html @@ -0,0 +1,10 @@ + + + + Testsuite + + + + + + diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.js b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.js new file mode 100644 index 00000000..e4f62915 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.foo.qunit.js @@ -0,0 +1,13 @@ +/* global window, top, location */ + +// eslint-disable-next-line sap-no-global-define +window.suite = function() { + "use strict"; + + // eslint-disable-next-line + var oSuite = new top.jsUnitTestSuite(), + sContextPath = location.pathname.substring(0, location.pathname.lastIndexOf("/") + 1); + oSuite.addTestPage(sContextPath + "foo/test.qunit.html"); + + return oSuite; +}; diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.html b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.html new file mode 100644 index 00000000..b94f78c4 --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.html @@ -0,0 +1,10 @@ + + + + Testsuite + + + + + + diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.js b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.js new file mode 100644 index 00000000..1485df5f --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/test/sap/test/lib/qunit/testsuite.qunit.js @@ -0,0 +1,14 @@ +/* global window, top, location */ + +// eslint-disable-next-line sap-no-global-define +window.suite = function() { + "use strict"; + + // eslint-disable-next-line + var oSuite = new top.jsUnitTestSuite(), + sContextPath = location.pathname.substring(0, location.pathname.lastIndexOf("/") + 1); + oSuite.addTestPage(sContextPath + "test.qunit.html"); + oSuite.addTestPage(sContextPath + "testsuite.foo.qunit.html"); + + return oSuite; +}; diff --git a/test/integration/library-ui5-tooling-multiple-testsuites/ui5.yaml b/test/integration/library-ui5-tooling-multiple-testsuites/ui5.yaml new file mode 100644 index 00000000..11f8dcfd --- /dev/null +++ b/test/integration/library-ui5-tooling-multiple-testsuites/ui5.yaml @@ -0,0 +1,5 @@ +--- +specVersion: "0.1" +type: library +metadata: + name: sap.x