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