Commit Graph

119 Commits

Author SHA1 Message Date
Timmy Willison
82169df010
Build: improve specificity of eslint config; add ecma versions
- also added no-implicit-globals rule outside of tests,
  but including dist

Close gh-5504
2024-06-10 09:01:53 -04:00
Timmy Willison
ec8802bafe
Build: migrate most grunt tasks off of grunt (3.x)
Close gh-5330

- 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 nodemon, which runs `npm run build:all` on `src` changes.

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
- run pretest script in jenkins

---------

Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
2023-09-20 18:18:42 -04:00
Dimitri Papadopoulos Orfanos
4a29888c75
Docs: Fix typos found by codespell
Closes gh-5165

(cherry picked from commit 620870a1af)
2023-06-28 00:30:45 +02:00
Michał Gołębiowski-Owczarek
6306ca4994
Selector: Inline Sizzle into the selector module: 3.x version (#5113)
This commit removes Sizzle from jQuery, inlining its code & removing obsolete
workarounds where applicable.

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 main `selector` module can be disabled in favor of `selector-native`
via:

    grunt custom:-selector

For backwards compatibility, the legacy `sizzle` alias is also supported (it
will be dropped in jQuery `4.0.0`):

    grunt custom:-selector

Sizzle tests have been ported to jQuery ones. Ones that are not compatible
with the `selector-native` module are disabled if the regular selector module
is excluded.

Backwards compatibility is still kept for all `Sizzle` utils - they continue to be
available under `jQuery.find` - but the primary implementation is now attached
directly to jQuery.

Some selector utils shared by `selector` & `selector-native` have been
extracted & deduplicated. `jQuery.text` and `jQuery.isXMLDoc` have been
moved to the `core` module.

The commit reduces the gzipped jQuery size by 851 bytes compared to the
`3.x-stable` branch.

Closes gh-5113
Ref gh-4395
Ref gh-4406
2022-12-14 01:41:31 +01:00
Michał Gołębiowski-Owczarek
95e34b6955
Docs: Replace #NUMBER Trac issue references with trac-NUMBER
This is a version of gh-4993 for the `3.x-stable` branch.

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-4994
Ref gh-4993
Ref 5d5ea01511
2022-01-12 23:23:10 +01:00
Michał Gołębiowski-Owczarek
1d61fd9407 Manipulation: Make jQuery.htmlPrefilter an identity function
Closes gh-4642

(cherry picked from 90fed4b453)
2020-03-16 21:59:49 +01:00
Pat O'Callaghan
42badf3460 Traversing: Fix contents() on <object>s with children
(cherry-picked from 4d865d96aa)

Fixes gh-4384
Closes gh-4385
2019-05-06 21:07:53 +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
Timmy Willison
17a26f5bd9 Fail silently if closest is somehow called on a document. Fixes #10726. 2012-07-25 16:05:59 -04:00
Dave Methvin
cde4c326b8 Fix #11969. Never a null moment when checking siblings. 2012-06-26 17:08:49 -04:00
Rick Waldron
7ff3da186c Unit tests are linted and passing. 2012-06-21 15:30:24 -04:00