Browse Source

Test for dropdownParent option

Mikhail Titov 6 years ago
parent
commit
01e68f4dd7
4 changed files with 86 additions and 0 deletions
  1. 83 0
      tests/dropdown/dropdownParent-tests.js
  2. 1 0
      tests/unit-jq1.html
  3. 1 0
      tests/unit-jq2.html
  4. 1 0
      tests/unit-jq3.html

+ 83 - 0
tests/dropdown/dropdownParent-tests.js

@@ -0,0 +1,83 @@
+module('Dropdown - attachBody - dropdownParent option');
+
+test('can be a selector string', function (assert) {
+    assert.expect(1);
+
+    var $ = require('jquery');
+
+    var $select = $('<select></select>');
+    var $parent = $('<div id="parent"></div>');
+
+    $('#qunit-fixture').append($parent);
+
+    var Utils = require('select2/utils');
+    var Options = require('select2/options');
+
+    var Dropdown = require('select2/dropdown');
+    var AttachBody = require('select2/dropdown/attachBody');
+
+    var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
+
+    var dropdown = new DropdownAdapter($select, new Options({
+        dropdownParent: '#parent'
+    }));
+
+    assert.equal(
+        dropdown.$dropdownParent[0],
+        $parent[0],
+        'Should be parsed using the selector as a jQuery object'
+    );
+});
+
+test('can be a jQuery object', function (assert) {
+    assert.expect(1);
+
+    var $ = require('jquery');
+
+    var $select = $('<select></select>');
+    var $parent = $('<div id="parent"></div>');
+
+    $('#qunit-fixture').append($parent);
+
+    var Utils = require('select2/utils');
+    var Options = require('select2/options');
+
+    var Dropdown = require('select2/dropdown');
+    var AttachBody = require('select2/dropdown/attachBody');
+
+    var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
+
+    var dropdown = new DropdownAdapter($select, new Options({
+        dropdownParent: $parent
+    }));
+
+    assert.equal(
+        dropdown.$dropdownParent[0],
+        $parent[0],
+        'Should just take the passed in jQuery object'
+    );
+});
+
+test('defaults to the document body', function (assert) {
+    assert.expect(1);
+
+    var $ = require('jquery');
+
+    var $select = $('<select></select>');
+
+    var Utils = require('select2/utils');
+    var Options = require('select2/options');
+
+    var Dropdown = require('select2/dropdown');
+    var AttachBody = require('select2/dropdown/attachBody');
+
+    var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
+
+    var dropdown = new DropdownAdapter($select, new Options({}));
+
+    assert.equal(
+        dropdown.$dropdownParent[0],
+        document.body,
+        'Should default to wrapping document.body'
+    );
+});

+ 1 - 0
tests/unit-jq1.html

@@ -70,6 +70,7 @@
     <script src="data/minimumInputLength-tests.js" type="text/javascript"></script>
 
     <script src="dropdown/dropdownCss-tests.js" type="text/javascript"></script>
+    <script src="dropdown/dropdownParent-tests.js" type="text/javascript"></script>
     <script src="dropdown/positioning-tests.js" type="text/javascript"></script>
     <script src="dropdown/search-a11y-tests.js" type="text/javascript"></script>
     <script src="dropdown/selectOnClose-tests.js" type="text/javascript"></script>

+ 1 - 0
tests/unit-jq2.html

@@ -70,6 +70,7 @@
     <script src="data/minimumInputLength-tests.js" type="text/javascript"></script>
 
     <script src="dropdown/dropdownCss-tests.js" type="text/javascript"></script>
+    <script src="dropdown/dropdownParent-tests.js" type="text/javascript"></script>
     <script src="dropdown/positioning-tests.js" type="text/javascript"></script>
     <script src="dropdown/search-a11y-tests.js" type="text/javascript"></script>
     <script src="dropdown/selectOnClose-tests.js" type="text/javascript"></script>

+ 1 - 0
tests/unit-jq3.html

@@ -70,6 +70,7 @@
     <script src="data/minimumInputLength-tests.js" type="text/javascript"></script>
 
     <script src="dropdown/dropdownCss-tests.js" type="text/javascript"></script>
+    <script src="dropdown/dropdownParent-tests.js" type="text/javascript"></script>
     <script src="dropdown/positioning-tests.js" type="text/javascript"></script>
     <script src="dropdown/search-a11y-tests.js" type="text/javascript"></script>
     <script src="dropdown/selectOnClose-tests.js" type="text/javascript"></script>