aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/tabs
Commit message (Collapse)AuthorAgeFilesLines
* Tabs: Properly handle decoded/encoded anchor hashes & panel IDsMichał Gołębiowski-Owczarek14 days2-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to jQuery UI 1.14.1, hashes in anchor hrefs were used directly. In gh-2307, that was changed - by decoding - to support more complex IDs, e.g. containing emojis which are automatically encoded in `anchor.hash`. Unfortunately, that broke cases where the panel ID is decoded as well. It turns out the spec mandates checking both. In the "scrolling to a fragment" section of the HTML spec[^1]. That uses a concept of document's indicated part[^2]. Slightly below there's an algorithm to compute the indicated part[^3]. The interesting parts are steps 4 to 9: 4. Let potentialIndicatedElement be the result of finding a potential indicated element given document and fragment. 5. If potentialIndicatedElement is not null, then return potentialIndicatedElement. 6. Let fragmentBytes be the result of percent-decoding fragment. 7. Let decodedFragment be the result of running UTF-8 decode without BOM on fragmentBytes. 8. Set potentialIndicatedElement to the result of finding a potential indicated element given document and decodedFragment. 9. If potentialIndicatedElement is not null, then return potentialIndicatedElement. First, in steps 4-5, the algorithm tries the hash as-is, without decoding. Then, if one is not found, the same is attempted with a decoded hash. This change replicates this logic by first trying the hash as-is and then decoding it. Fixes gh-2344 Closes gh-2345 Ref gh-2307 [^1]: https://html.spec.whatwg.org/#scrolling-to-a-fragment [^2]: https://html.spec.whatwg.org/#the-indicated-part-of-the-document [^3]: https://html.spec.whatwg.org/#select-the-indicated-part
* Tabs: Support URL-based credentialsMichał Gołębiowski-Owczarek14 days1-0/+26
| | | | | | | | | | | | | When credentials are provided directly in the URL, e.g.: https://username:password@www.example.com/ `location.href` strips out the auth part, but anchor links contain them, making our `isLocal` computation broken. This fixes it by only looking at `origin`, `pathname` & `search`. Fixes gh-2213 Closes gh-2345
* Tabs: Use `CSS.escape` for sanitizing selectorsMichał Gołębiowski-Owczarek2024-10-272-2/+32
| | | | | | The previous private `_sanitizeSelector` API was not correctly escaping backslashes and is now removed. The native API should always be correct. Closes gh-2307
* All: Drop support for jQueries different than the latest for each majorMichał Gołębiowski-Owczarek2024-05-151-20/+3
| | | | | | Also, remove the ability to run the test suite in jQuery <1.12.4 & <2.2.4. Closes gh-2249
* Core: Make back compat disabled by defaultMichał Gołębiowski-Owczarek2024-05-131-3/+3
| | | Closes gh-2250
* Tests: Skip a problematic keyboard test in IE with jQuery 3.6Michał Gołębiowski-Owczarek2024-04-121-1/+7
| | | | | | jQuery 3.6 has issues with focus handling in IE which breaks this test. The issues were fixed in jQuery 3.7, so we just accept them here. Closes gh-2231
* Build: Fork vendors to remove QUnit deprecated API usageMichał Gołębiowski-Owczarek2023-05-101-2/+2
| | | | | | | | | | | | Changes: * add `tests/lib/vendor/**/*` to `.eslintignore` * move `qunit-composite` to `tests/lib` so that we can modify it * move `qunit-assert-classes` to `tests/lib` so that we can modify it * move `qunit-assert-close` to `tests/lib` so that we can modify it * replace `assert.push` with `assert.pushResult` * remove usage of `QUnit.extend` Closes gh-2157
* Widget: Optimize attachment of the _untrackClassesElement listenerMichał Gołębiowski-Owczarek2022-01-151-0/+52
| | | | | | | | | | | | | | | jQuery UI 1.13.0 changed the logic attaching the `_untrackClassesElement` listener in the `_classes` widget method; one of the side effects was calling `this._on` for each node that needed the listener. That caused a severe performance degradation for large comboboxes as each `_on` jQuery UI call causes a jQuery `add` call that calls Sizzle's `uniqueSort` underneath. Instead, collect the nodes that need the listener and then, outside of the loop, create a jQuery object out of them and attach the listener once. That's still slower than the jQuery 1.12 version but only slightly: 936 ms to 1.03s on a very large list on a recent MacBook Pro, compared to ~30 seconds before this patch. Fixes gh-2014 Closes gh-2037
* Build: Migrate from JSHint & JSCS to ESLintMichał Gołębiowski-Owczarek2021-06-074-0/+4
| | | | | Fixes #15393 Closes gh-1958
* Tests: Accept delayed focusout in IE with jQuery 1.8Michał Gołębiowski-Owczarek2021-04-161-2/+13
| | | | | | In IE with jQuery 1.8 focusout may not happen immediately so some checks need to be done later. Closes gh-1952
* Tests: Ensure no timers are running at the end of each test (#1920)Michał Gołębiowski-Owczarek2020-05-164-8/+12
| | | | | | | | | | | | | This helps fix issues that make tooltip tests sometimes fail when run against jQuery 3.2 or newer due to timing differences. Details: * Add the `moduleAfterEach` function ensuring no timers are running. * Attach this function via `common.testWidget`. * Attach this function to most test suites. * Add a tooltip test helper cleaning up leftover timers. * Rename legacy `setup`/`teardown` hooks to `beforeEach`/`afterEach`. Closes gh-1920
* Tabs: Remove presentation rolemilk542016-09-291-2/+1
| | | | | Fixes #10122 Closes gh-1748
* Tabs: Remove test for Ajax URLs containing hashesScott González2016-07-061-12/+0
| | | | | | | | | This hasn't been a problem for a long time and jQuery no longer removes the hash in 3.0.0, so the test started to fail even though the actual code is working just fine. Ref #3627 Ref jquery/jquery#1732
* Tabs: Fix testScott González2016-05-251-2/+2
|
* Tabs: Shift to use no globalsAmanpreet Singh2016-04-145-700/+712
|
* Tabs: Handle overly-precise values in tests in IEScott González2015-10-271-1/+4
| | | | Closes gh-1628
* Tabs: Adjust handling of disabled option, using _setOptionDisabledJörn Zaefferer2015-09-251-1/+1
| | | | | | | | Tabs support multiple values to disable individual tabs. Only add the ui-tabs-disabled class when all tabs are disabled. Ref #9151 Closes gh-1599
* Tabs: Style updatesAlexander Schmitz2015-09-116-164/+180
| | | | Ref #14246
* Tabs: Style updatesAlexander Schmitz2015-08-215-42/+42
| | | | | Ref #14246 Ref gh-1588
* Tabs: Move tabs into widgets directoryAlexander Schmitz2015-08-086-6/+6
| | | | Ref #13885
* Tabs: Remove core event/alias and deprecated module dependenciesAlexander Schmitz2015-05-202-8/+8
|
* Tabs: Rename ui-tab class to ui-tabs-tab for consistent prefixesJörn Zaefferer2015-04-181-1/+7
| | | | | | | Fixes #12061 Closes gh-1538 Ref #7053 Ref jquery/api.jqueryui.com#256
* Tests: Fix AMD loading in IE8Scott González2015-04-171-0/+1
| | | | | It appears that we must load require.js via a standard script tag in order for it to work properly in IE8.
* Tests: Rename filesScott González2015-04-096-4/+4
| | | | Ref gh-1528
* Tests: Widget test helpers extend the main helperScott González2015-04-095-14/+18
| | | | | Ref #10119 Ref gh-1528
* Tabs: Convert tests to new infrastructureScott González2015-04-097-47/+51
| | | | | Ref #10119 Ref gh-1528
* Tests: Switch to the new qunit-composite moduleScott González2015-04-071-2/+2
| | | | | | This module was created from our existing implementation. Closes gh-1532
* Tabs: Use new has/lacksClasses assertions for all class checksAlexander Schmitz2015-03-112-44/+44
|
* Tabs: Add classes optionAlexander Schmitz2015-03-115-27/+75
| | | | | Ref #7053 Ref gh-1411
* Widget: Add classes option and _add/_remove/_toggleClass methodsAlexander Schmitz2015-03-111-0/+1
| | | | | Fixes #7053 Closes gh-1411
* Tests: Reduce timeouts to optimize testsuite runtimeJörn Zaefferer2015-03-043-24/+24
|
* Tests: Fix style issues with missing or multiple line breaksJörn Zaefferer2015-01-242-2/+0
| | | | | As pointed out by jscs, after a esformatter run. The latter doesn't address these, so fixing them manually.
* Tabs: Suppress automatic activation when navigating with COMMANDScott González2014-11-041-183/+210
| | | | | Fixes #9621 Closes gh-1383
* Build: Pull in jquery.simulate.js from BowerMike Sherov2014-08-221-1/+1
| | | | Fixes #10563
* Tests: Fix composite testsScott González2014-08-011-1/+1
|
* Build: Reorganize external directoryScott González2014-06-242-4/+4
| | | | | | | Put each external library into its own directory. Move jquery.js to external. Ref gh-1266
* Tabs: Move `aria-expanded` from active panel to active tabDavid Petersen2014-05-191-63/+63
| | | | | Fixes #9622 Closes gh-1251
* All: Rename jquery.js to exclude version in filenameJörn Zaefferer2014-03-051-1/+1
|
* Tests: Update to sane QUnit markupJörn Zaefferer2014-02-202-10/+2
|
* All: Rename all files, removing the "jquery.ui." prefix;Rafael Xavier de Souza2014-01-241-4/+4
| | | | | | | - By executing https://gist.github.com/jzaefferer/893fcf70b7eebc1dc271; Fixes #9464 Closes gh-1029
* Tabs: Use .uniqueId() for panels and moved isLocal() into the widget prototype.Scott González2013-10-241-1/+1
|
* Updating jQuery to 1.10.2.Bruno M. Custódio2013-07-051-1/+1
| | | | | Adding jQuery 1.10.0, 1.10.1, 1.10.2, 2.0.0, 2.0.1, 2.0.2 and 2.0.3 to the tests directory.
* Tabs: Prevent default action of clicks even when disabled. Fixes #9413 - ↵Scott González2013-07-031-2/+7
| | | | Tabs: Disabled tabs are still clickable.
* Widget tests: Use instance method. Also replace a few instances of $.data in ↵Jörn Zaefferer2013-03-192-5/+5
| | | | widget implementations.
* Widget: Stop setting ui-state-disabled and aria by default on setting ↵Scott González2013-03-141-1/+17
| | | | | | | | | | disabled option. Fixes #5973 - Resizable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled Fixes #5974 - Draggable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled Fixes #6039 - Droppable: disabled should not have ui-state-disabled This reverts commit 23771d38ba9d2663f6db0243c8e992dc7ff6844a.
* Revert "Widget: Stop setting ui-state-disabled and aria by default on ↵Scott González2013-03-141-17/+1
| | | | | | setting disabled option." This needs to wait for a major release. This reverts commit 4d67f4f34908a50ef88f95df4103ee001b777e45.
* Widget: Stop setting ui-state-disabled and aria by default on setting ↵Mike Sherov2013-03-111-1/+17
| | | | | | | | disabled option. Fixes #5973 - Resizable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled Fixes #5974 - Draggable: disabled should not have the ui-state-disabled class or aria attribute aria-disabled Fixes #6039 - Droppable : disabled should not have ui-state-disabled
* Updating 'jQuery' to 1.9.1.Bruno M. Custódio2013-02-051-1/+1
|
* Updating to jQuery 1.9.0Kris Borchers2013-01-171-1/+1
|
* Dev: Change incorrect references in test suite from #main to #qunit-fixture.Mike Sherov2012-12-081-3/+3
|