Commit Graph

151 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
d591bdd494
Widget: Don't let widget name affect $.ui prototype & constructor
This is an edge case and it only affects code accepting untrusted input as
a widget name, but it's still technically correct to filter these out.

Closes gh-2310
2024-10-30 09:58:01 +01:00
Michał Gołębiowski-Owczarek
bb49bd794b
All: Drop support for IE & some other browsers (but mostly IE)
Closes gh-2249
2024-05-15 00:38:40 +02:00
Michał Gołębiowski-Owczarek
546214e869 Build: Fork vendors to remove QUnit deprecated API usage
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
2023-05-10 10:53:57 +02:00
Michał Gołębiowski-Owczarek
ed637b04d7
Widget: Make contextless widget construction work
Due to the fact the widget factory code is now in strict mode, the check for
being called without using the `new` keyword started breaking if you save the
widget constructor to a variable before calling it:
```js
var customWidget = $.custom.customWidget;
customWidget( {}, elem );
```
as then `this` is undefined and checking for `this._createWidget` crashes.
Account for that with an additional check.

Fixes gh-2015
Closes gh-2019
2021-11-19 00:47:56 +01:00
Michał Gołębiowski-Owczarek
70dae67b73
Build: Migrate from JSHint & JSCS to ESLint
Fixes #15393
Closes gh-1958
2021-06-07 00:58:12 +02:00
Michał Gołębiowski-Owczarek
e7a10c70ae
Tests: Ensure no timers are running at the end of each test (#1920)
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
2020-05-16 09:16:24 +02:00
Michał Gołębiowski-Owczarek
98b539171b All: Migrate away from deprecated/removed Core APIs
Summary of the changes:

* Build: Add jQuery 3.2.0-3.4.1 to versions UI can be tested against
* Build: Load jQuery & Migrate via HTTPS
* Build: Add package-lock.json to .gitignore
* Build: Update jQuery Migrate from 3.0.0 to 3.1.0
* Build: Allow to run tests against jQuery 3.x-git
* Build: Fix formatting according to JSCS rules
* Build: Disable JSCS for the inlined jQuery Color
* All: Switch from $.isArray to Array.isArray (jQuery.isArray will be
  removed in jQuery 4.0)
* All: Switch from `$.isFunction( x )` to `typeof x === "function"`
  (jQuery.isFunction will be removed in jQuery 4.0)
* All: Inline jQuery.isWindow as it'll be removed in jQuery 4.0
* Effects: Fix a timing issue in a variable declaration. Previously,
  a jQuery object was created, chained & assigned to a variable that
  was then accessed in a callback used inside of this chained
  definition. Due to a timing difference in when the callback fired for
  the first time in latest jQuery master, it was being called before
  the variable was defined.
* Tests: Make dialog & draggable unit tests less strict (newest jQuery
  returns fractional results in some cases, making comparisons fail when
  there's a tiny difference)
* All: Migrate from $.trim to bare String.prototype.trim (jQuery.trim
  will be deprecated in jQuery 3.5)

Closes gh-1901
2019-12-08 22:23:08 +01:00
Scott González
b3c0a7f71d Widget: Handle Object.create(null) for options objects
Fixes #15179
Closes gh-1809
2017-04-24 12:41:29 -04:00
Alexander Schmitz
89af4c292e Widget: Untrack classes elements when they are removed from the DOM
Fixes #15043
Closes gh-1744
2016-09-13 15:11:34 -04:00
Scott González
3dd8a09b44 Widget: instance() should return undefined for empty sets
Fixes #15019
2016-08-04 09:04:49 -04:00
Amanpreet Singh
10741ef7f8 Widget: Shift to use no globals 2016-04-14 00:14:57 +05:30
Scott González
7dde5c9d75 Widget: Call ._setOptionDisabled() on init if the widget is disabled
Fixes #9151
Ref gh-1599
2015-09-25 13:46:25 -04:00
Scott González
e19d462f16 All: Delegate to base _getCreateOptions().
Ensures that any extensions to the base widget will be handled properly by
individual widgets.

Closes gh-1598
2015-09-17 08:47:28 -04:00
Alexander Schmitz
e021e4d6e2 Widget: Style updates
Ref #14246
2015-09-11 08:36:41 -04:00
Alexander Schmitz
e543253468 Widget: Remove core event/alias and deprecated module dependencies 2015-05-20 14:27:57 -04:00
Scott González
556b2710f0 Widget: Support mixins
Fixes #12601
Closes gh-1554
2015-05-14 20:36:00 -04:00
Scott González
f9ad17d575 Widget tests: Clean up $.fn methods 2015-05-13 14:58:39 -04:00
Scott González
6231b161b9 Tests: Fix AMD loading in IE8
It appears that we must load require.js via a standard script tag in order
for it to work properly in IE8.
2015-04-17 12:13:38 -04:00
Scott González
bde431bb44 Tests: Rename files
Ref gh-1528
2015-04-09 09:27:00 -04:00
Scott González
23a7a113ac Widget: Convert tests to new infrastructure
Ref #10119
Ref gh-1528
2015-04-09 09:26:27 -04:00
Scott González
500f6b4992 Tests: Switch to the new qunit-composite module
This module was created from our existing implementation.

Closes gh-1532
2015-04-07 09:03:36 -04:00
Alexander Schmitz
61232cb745 Widget: Use new has/lacksClasses assertions for all class checks 2015-03-11 16:05:41 -04:00
Alexander Schmitz
c192d4086d Widget: Add classes option and _add/_remove/_toggleClass methods
Fixes #7053
Closes gh-1411
2015-03-11 16:00:04 -04:00
Jörn Zaefferer
ac2a1113bb Tests: Fix missing wrapper in widget extend unit tests 2015-03-06 16:27:46 +01:00
Scott González
347b2a5ecd Widget: Fix typos
Closes gh-1386
2014-11-10 08:08:37 -05:00
Alexander Schmitz
304c00d0e8 Widget: modify this.window test to support IE8 window equality quirk
Comparing this.window with strict equality fails in IE8
2014-08-27 19:33:38 -04:00
Alexander Schmitz
1abf9fc71f Widget: Ensure window and document are defined in _getCreateOptions()
Closes gh-1320
2014-08-27 09:08:01 -04:00
Mike Sherov
aa425ab95d Build: Pull in jquery.simulate.js from Bower
Fixes #10563
2014-08-22 17:01:50 -04:00
Scott González
c017628e11 Tests: Fix composite tests 2014-08-01 12:25:14 -04:00
Scott González
6df127a0b5 Build: Reorganize external directory
Put each external library into its own directory.
Move jquery.js to external.

Ref gh-1266
2014-06-24 22:45:32 -04:00
Jörn Zaefferer
a40647f0e5 All: Rename jquery.js to exclude version in filename 2014-03-05 10:19:11 +01:00
Jörn Zaefferer
822f3cd9d0 Tests: Update to sane QUnit markup 2014-02-20 17:05:02 +01:00
Rafael Xavier de Souza
21154cfa2e All: Rename all files, removing the "jquery.ui." prefix;
- By executing https://gist.github.com/jzaefferer/893fcf70b7eebc1dc271;

Fixes #9464
Closes gh-1029
2014-01-24 18:22:49 -02:00
Ruslan Yakhyaev
be2a339b2b Widget: Support events with dashes and colons
Fixes #9708
Closes gh-1159
2014-01-16 12:12:04 -05:00
Jyoti Deka
ecde7cd41a Widget: option-method should work as getter only when argument length is 1. Fixes #9601 - Widget: calling _setOption with undefined as 3rd argument makes it a getter 2013-10-16 22:22:28 +02:00
Jörn Zaefferer
6e799c39d3 Widget Bridge: Make the _init method optional. Add tests for both states. Fixes #9543 - Widget bridge: Make _init() optional. 2013-09-11 22:26:34 +02:00
Alexander Schmitz
787d607f8e Widget Factory: Fix multiple var statements in test 2013-07-31 17:08:30 -04:00
Alexander Schmitz
c0ab71056b Widget Factory: Make $.widget return the constructor. Fixes #9467 - Widget factory: Return the constructor from $.widget(). 2013-07-31 16:52:21 -04:00
Bruno M. Custódio
0d5eaab9bb Updating jQuery to 1.10.2.
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.
2013-07-05 08:42:37 -04:00
Scott González
2eb89f0734 Widget: Properly set widgetEventPrefix when redefining a widget. Fixes #9316 - Widget: widgetEventPrefix is empty when widget is (occasionally) loaded twice. 2013-05-20 11:30:49 -04:00
Jörn Zaefferer
1c1f7c6184 Widget: Remove copy-pasta leftovers 2013-03-19 17:53:09 +01:00
Jörn Zaefferer
90135b27f8 Widget tests: Use instance method. Also replace a few instances of $.data in widget implementations. 2013-03-19 16:53:35 +01:00
Corey Frang
4fce29e935 Widgets: Updating to use instance method on bridge 2013-03-19 16:08:00 +01:00
Corey Frang
36cb6f264d Widget: Implement instance method on the bridge to return widget instance - Fixes #9030 - instance method in widget prototype 2013-03-19 16:07:59 +01:00
Bruno M. Custódio
b440979ba6 Updating 'jQuery' to 1.9.1. 2013-02-05 13:47:59 +00:00
Kris Borchers
34409e7ddd Updating to jQuery 1.9.0 2013-01-17 00:28:41 -06:00
Scott González
8b15aaf496 Widget: Don't modify the prototype passed to $.widget(). Fixes #8876 - Calling _super calls wrong inherited widget. 2012-12-03 14:18:24 -05:00
Scott González
7312933c88 Widget tests: Fixed order of actual and expected. 2012-12-03 13:57:28 -05:00
Scott González
fb6119e182 Upgrade jQuery to 1.8.3. 2012-11-14 15:22:01 -05:00
Scott González
9e858ba14a Widget: Only use the event prefix from the base if we're redefining a widget. Fixes #8805 - Widget: widgetEventPrefix is incorrect when inheriting with jQuery UI 1.9.1. 2012-11-09 16:49:03 -05:00