Commit Graph

122 Commits

Author SHA1 Message Date
Timmy Willison
74970524e5
Build: improve specificity of eslint config; add ecma versions
Closes gh-5501
2024-06-06 09:56:44 -04:00
Timmy Willison
2bdecf8b7b
Build: migrate most grunt tasks off of grunt
Updated tasks include:

- lint
- npmcopy
- build, minify, and process for distribution.
- new custom build command using yargs
- compare size of minified/gzip built files
- pretest scripts, including qunit-fixture, babel transpilation, and npmcopy
- node smoke tests
- promises aplus tests
- new watch task using `rollup.watch` directly

Also:

- upgraded husky and added the new lint command
- updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new
- Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556
- committed package-lock.json
- updated all test scripts to use the new build
- added an express test server that uses middleware-mockserver (this can be used to run tests without karma)
- build-all-variants is now build:all

Close gh-5318
2023-09-18 12:39:00 -04:00
Dimitri Papadopoulos Orfanos
620870a1af
Docs: Fix typos found by codespell
Closes gh-5165
2023-06-28 00:29:29 +02:00
Michał Gołębiowski-Owczarek
2e644e8450
Selector: Backport jQuery selection context logic to selector-native
This makes:
```js
$div.find("div > *")
```
no longer matching children of `$div`.

Also, leading combinators now work, e.g.:
```js
$div.find( "> *" );
```
returns children of `$div`.

As a result of that, a number of tests are no longer skipped in the
`selector-native` mode.

Also, rename `rcombinators` to `rleadingCombinator`.

Fixes gh-5185
Closes gh-5186
Ref gh-5085
2023-02-13 18:34:41 +01:00
Michał Gołębiowski-Owczarek
5d5ea01511
Docs: Replace #NUMBER Trac issue references with trac-NUMBER
The GitHub UI treats `#NUMBER` as referring to its own issues which is confusing
when in jQuery source it's usually referring to the old deprecated Trac instance
at https://bugs.jquery.com. This change replaces all such Trac references with
`trac-NUMBER`.

A few of the references came with the Sizzle integration and referred to the
Sizzle GitHub bug tracker. Those have been replaced with full links instead.

A new entry describing issue reference conventions has been added to README.

Closes gh-4993
2022-01-04 16:27:18 +01:00
Michał Gołębiowski-Owczarek
90fed4b453
Manipulation: Make jQuery.htmlPrefilter an identity function
Closes gh-4642
2020-03-16 21:49:29 +01:00
Michał Gołębiowski-Owczarek
47835965bd Selector: Inline Sizzle into the selector module
This commit removes Sizzle from jQuery, inlining its code & removing obsolete
workarounds where applicable.

The selector-native module has been removed. Further work on the selector
module may decrease the size enough that it will no longer be necessary. If
it turns out it's still useful, we'll reinstate it but the code will look
different anyway as we'll want to share as much code as possible with
the existing selector module.

The Sizzle AUTHORS.txt file has been merged with the jQuery one - people are
sorted by their first contributions to either of the two repositories.

The commit reduces the gzipped jQuery size by 1460 bytes compared to master.

Closes gh-4395
2019-07-29 21:19:21 +02:00
Michał Gołębiowski-Owczarek
79b74e043a
Selector: Port Sizzle tests to jQuery
Apart from porting most Sizzle tests to jQuery (mostly to its selector module),
this commit fixes selector-native so that a jQuery custom compilation that
excludes Sizzle passes all tests as well.

Closes gh-4406
2019-06-26 21:39:10 +02:00
Michał Gołębiowski-Owczarek
3527a38405
Core: Remove IE-specific support tests, rely on document.documentMode
Also, update some tests to IE-sniff when deciding whether
to skip a test.

Fixes gh-4386
Closes gh-4387
2019-05-13 21:39:56 +02:00
Pat O'Callaghan
4d865d96aa Traversing: Fix contents() on <object>s with children
Fixes gh-4384
Closes gh-4385
2019-05-06 19:23:00 +02:00
abnud1
c349818742 Build: Update test code for compatibility with QUnit 2.x (#4297)
Also, run `grunt npmcopy` to sync the "external" directory with dependencies
from package.json. For example, the Sinon library version didn't match.

Ref gh-4234
Closes gh-4297
2019-02-18 19:03:26 +01:00
Luis Emilio Velasco Sanchez
0ba8e38d0c Traversing: $.fn.contents() support for object
Fixes gh-4045
Closes gh-4046
2018-05-14 13:41:42 -04:00
Timmy Willison
6483af7ee5
Tests: skip test with invalid selector for selector-native tests 2018-01-19 11:13:48 -05:00
Timo Tijhof
ecd8ddea33
Tests: Add support for running unit tests via grunt with karma
- Update QUnit to 1.23.1
- Remove unused dl#dl from test/index.html
- Remove unused map#imgmap from test/index.html
- Ensure all urls to data use baseURI
- Add the 'grunt karma:main' task
  - customContextFile & customDebugFile
- Add 'npm run jenkins' script

Close gh-3744
Fixes gh-1999
2017-12-18 12:27:38 -05:00
南漂一卒
3e3b09d68d Traversing: $.fn.contents() supports HTMLTemplateElement
Fixes gh-3436
Closes gh-3462
2017-01-29 23:32:15 +01:00
Dave Methvin
560c0c6f99 Traversing: Let .not(arraylike) pass non-element nodes
Fixes gh-3226
Closes gh-3261
2016-08-10 10:04:24 -04:00
Oleg Gaidarenko
f1300f1887 Tests: fix another traverse test
Tricky test - if isolated, was executed fine, but falling
if runned with other tests

Ref b97c8d30c5
2016-01-31 12:09:48 +03:00
Oleg Gaidarenko
b97c8d30c5 Tests:Build: update qunit and fix incorrect test
* Update QUnit to the latest version (1.20.0)

* Corrected test was dependent on QUnit UI, which is always a bad idea
2016-01-29 21:22:52 +03:00
Richard Gibson
a268f5225c Traversing: Never let .closest() match positional selectors
Fixes gh-2796
Close gh-2818
2016-01-13 13:37:11 -05:00
Martijn W. van der Lee
0e2f8f9eff Traversing: .not/.filter consistency with non-elements
Fixes gh-2808
Close gh-2809
2016-01-13 13:33:01 -05:00
Timmy Willison
88046440da Selector: pass jQuery unit tests with selector-native
- Ignore certain tests that obviously are not supported
- Beefed up the sortOrder, uniqueSort, isXMLDoc, and attr functions

Fixes gh-1742
Fixes gh-2048
Close gh-2703
2015-11-11 10:10:10 -05:00
Oleg Gaidarenko
c8d15a2f9f Tests: further improvements QUnit 2.0 migration
* Remove QUnit jshint globals
* Extend QUnit.assert methods
* Use assert.async instead of start/stop/done

Ref b930d14ce6
2015-09-08 04:06:20 +03:00
Oleg Gaidarenko
10fdad742a Build: Update jscs and lint files
Fixes gh-2056
2015-09-07 20:03:50 +03:00
Oleg Gaidarenko
b930d14ce6 Tests: partially use new qunit interface
http://qunitjs.com/upgrade-guide-2.x/

For most of the boring work was used
https://github.com/apsdehal/qunit-migrate package

However, it can't update local qunit helpers, plus in some places
old QUnit.asyncTest signature is still used

Fixes gh-2540
2015-08-16 09:02:01 +03:00
Timmy Willison
e1090c3d2b Selector: add jQuery.uniqueSort; deprecate jQuery.unique
Fixes gh-2228
2015-05-04 15:27:12 -07:00
Oleg Gaidarenko
8b6aeae52d Build: fix broken assertions caused by QUnit update
QUnit update broke couple traversing and manipulation tests, since new qunit
added another form to the test-suite while some of
jQuery selectors weren't specific

Ref 2d5c5d213f
2015-02-15 02:22:09 +03:00
Richard Gibson
391c21b15d Traversing: Check all pairwise element combinations for .find( els )
Ref b8d0d54a3c
Fixes #14701
2014-01-17 00:38:56 -05:00
Timo Tijhof
b39ee05b69 traversing: Optimise .add by not using makeArray
Closes gh-1430
2013-12-30 12:34:08 -05:00
Richard Gibson
9c4a428528 Fix #13846: .prev sort direction 2013-05-01 11:33:06 -04:00
Richard Gibson
78c803f1b5 Fix #13819: .parent sort direction
(cherry picked from commit 6a816ec95f)
2013-04-24 11:40:42 -04:00
Richard Gibson
fb1731ab16 Fix #13797: .is with single-node context
(cherry picked from commit 4f786ba4d2)
2013-04-20 11:51:51 -04:00
Timmy Willison
0fa52c11cb Update jshintrc to conform to new style guide. Conform to onevar and unused in tests. Fixes #13755. 2013-04-09 11:59:31 -04:00
Michał Gołębiowski
52394ba986 Move size() test to deprecated.js and avoid in other tests. Close gh-1237. 2013-04-08 20:38:20 -04:00
Richard Gibson
5d1dfe7474 Fix #13539: Utilize Sizzle hooks. Close gh-1215.
(cherry picked from commit 4ef516903e)
2013-04-05 00:37:36 -04:00
dmitrygusev
eee2eaf1d7 Fix typos. Close gh-1186. 2013-02-28 15:45:10 -05:00
Nguyen Phuc Lam
8bc7bdebef Ref #13283, move .andSelf() to deprecated.js. Close gh-1170. 2013-02-26 22:57:12 -05:00
Richard Gibson
59f5adb622 No ticket: Revise unit tests in anticipation of Sizzle-free builds 2013-02-22 20:13:36 -05:00
Richard Gibson
b734666f4d Fix #13265 #13332: traversing methods with text nodes. Close gh-1145. 2013-02-13 22:03:37 -05:00
Oleg
65bdfbf07f Reduce traversing module 2012-12-19 19:42:33 +04:00
Richard Gibson
a763ae7277 Fix #11115: Normalize boolean attributes/properties. Close gh-1066. 2012-12-15 23:16:48 -05:00
timmywil
05531fc408 Adjust jQuery('html') detection to only match when html starts with '<' (not counting space characters). Fixes #11290. 2012-12-13 15:31:02 -05:00
Timo Tijhof
55313d32a2 Test: Update index.html to new QUnit format. Close gh-1061.
Depends on jquery/sizzle#177, included with the Sizzle submodule in this commit.
2012-12-10 21:48:20 -05:00
Dave Methvin
8657538b33 Test case for #12816 2012-10-31 23:36:43 -04:00
Mike Sherov
e8f91514a6 Fix #12009. $().find( DOMElement ) should pushStack properly. Close gh-927. 2012-10-30 13:32:53 -04:00
Timo Tijhof
36c9ecb0f5 Implement expectation test instead of using _removeData. Close gh-997.
* Removed inline usage of QUnit.reset() because it is messing with the
  expectation model as reset does .empty() which does a recursive cleanData
  on everything in #qunit-fixture, so any expectJqData above .reset() would
  fail negatively.

  Instead of calling reset inline, either updated the following assertions to
  take previous assertions' state into account, or broke the test() up into
  2 tests at the point where it would call QUnit.reset.

* After introducing the new memory leak discovery a whole bunch of tests were
  failing as they didn't clean up everything. However I didn't (yet) add
  QUnit.expectJqData calls all over the place because in most if not all of
  these cases it is valid data storage. For example in test "data()", there
  will be an internal data key for "parsedAttrs". This particular test isn't
  intending to test for memory leaks, so therefor I made the new discovery
  system only push failures when the test contains at least 1 call to
  QUnit.expectJqData.

  When not, we'll assume that whatever data is being stored is acceptable
  because the relevant elements still exist in the DOM anyway (QUnit.reset
  will remove the elements and clean up the data automatically).

  I did add a "Always check jQuery.data" mode in the test suite that will
  trigger it everywhere. Maybe one day we'll include a call to everywhere,
  but for now I'm keeping the status quo: Only consider data left in storage
  to be a problem if the test says so ("opt-in").

* Had to move #fx-tests inside the fixture because ".remove()" test would
  otherwise remove stuff permanently and cause random other tests to fail
  as "#hide div" would yield an empty collection.
  (Why wasn't this in the fixture in the first place?)

  As a result moving fx-tests into the fixture a whole bunch of tests failed
  that relied on arbitrary stuff about the document-wide or fixture-wide
  state (e.g. number of divs etc.). So I had to adjust various tests to
  limit their sample data to not be so variable and unlimited...

* Moved out tests for expando cleanup into a separate test.

* Fixed implied global variable 'pass' in effects.js that was causing
  "TypeError: boolean is not a function" in *UNRELATED* dimensions.js that
  uses a global variable "pass = function () {};" ...

* Removed spurious calls to _removeData. The new test exposed various failures
  e.g. where div[0] isn't being assigned any data anyway.
  (queue.js and attributes.js toggleClass).

* Removed spurious clean up at the bottom of test() functions that are
  already covered by the teardown (calling QUnit.reset or removeClass to
  supposedly undo any changes).

* Documented the parentheses-less magic line in toggleClass. It appeared that
  it would always keep the current class name if there was any (since the
  assignment started with "this.className || ...".

  Adding parentheses + spacing is 8 bytes (though only 1 in gzip apparently).
  Only added the comment for now, though I prefer clarity with logical
  operators, I'd rather not face the yayMinPD[1] in this test-related commit.

* Updated QUnit urlConfig to the new format (raw string is deprecated).

* Clean up odd htmlentities in test titles, QUnit escapes this.
  (^\s+test\(.*)(&gt\;) → $1>
  (^\s+test\(.*)(&lt\;) → $1<

[1] jQuery MinJsGz Release Police Department (do the same, download less)
2012-10-28 22:44:57 -04:00
Timmy Willison
420dcc5842 Update Sizzle: allows disconnected sorting. Change add to always sort with added nodes, even when disconnected. 2012-10-16 11:54:54 -04:00
MORGAN
4bb46f413a Return correct index for no-arg index() calls. Fixes #10977. Closes gh-971 2012-10-16 10:25:08 -04:00
Mike Sherov
ed9e34482a enforce double quotes via JSHint. Closes gh-975 2012-10-16 10:17:14 -04:00
James Huston
435fbe1793 Enforce expects in events.js (https://github.com/jquery/2012-dev-summit/issues/53) Closes gh-962 2012-10-15 12:18:14 -04:00
Timmy Willison
e07b444dfe Fix a regression where has with multiple contexts was not filtering correctly. Test added. 2012-07-27 18:19:18 -04:00