diff --git a/tests/data/array-tests.js b/tests/data/array-tests.js
index 70ead12d..d0dead68 100644
--- a/tests/data/array-tests.js
+++ b/tests/data/array-tests.js
@@ -193,7 +193,10 @@ test('multiple sets the value', function (assert) {
var data = new ArrayData($select, arrayOptions);
- assert.equal($select.val(), null);
+ assert.ok(
+ $select.val() == null || $select.val().length == 0,
+ 'nothing should be selected'
+ );
data.select({
id: 'default',
diff --git a/tests/data/select-tests.js b/tests/data/select-tests.js
index abb1e484..b59c6d4b 100644
--- a/tests/data/select-tests.js
+++ b/tests/data/select-tests.js
@@ -130,7 +130,10 @@ test('multiple sets the value', function (assert) {
var data = new SelectData($select, selectOptions);
- assert.equal($select.val(), null);
+ assert.ok(
+ $select.val() == null || $select.val().length == 0,
+ 'nothing should be selected'
+ );
data.select({
id: 'Two',
diff --git a/tests/dropdown/positioning-tests.js b/tests/dropdown/positioning-tests.js
index 37c2b064..2da68982 100644
--- a/tests/dropdown/positioning-tests.js
+++ b/tests/dropdown/positioning-tests.js
@@ -106,7 +106,7 @@ test('dropdown is positioned down with static margins', function (assert) {
);
assert.equal(
- $dropdown.css('top').substring(0, 2),
+ $dropdown.css('top').replace(/\D+/, ''),
$container.outerHeight() + 5,
'The offset should be 5px at the top'
);
@@ -164,7 +164,7 @@ test('dropdown is positioned down with absolute offsets', function (assert) {
);
assert.equal(
- $dropdown.css('top').substring(0, 2),
+ $dropdown.css('top').replace(/\D+/, ''),
$container.outerHeight(),
'There should not be an extra top offset'
);
diff --git a/tests/integration-jq3.html b/tests/integration-jq3.html
new file mode 100644
index 00000000..2f99fb5b
--- /dev/null
+++ b/tests/integration-jq3.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/unit-jq3.html b/tests/unit-jq3.html
new file mode 100644
index 00000000..a14fa9e6
--- /dev/null
+++ b/tests/unit-jq3.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/vendor/jquery-3.4.1.js b/tests/vendor/jquery-3.4.1.js
new file mode 100644
index 00000000..773ad95c
--- /dev/null
+++ b/tests/vendor/jquery-3.4.1.js
@@ -0,0 +1,10598 @@
+/*!
+ * jQuery JavaScript Library v3.4.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2019-05-01T21:04Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+ // Support: Chrome <=57, Firefox <=52
+ // In some browsers, typeof returns "function" for HTML