Commit graph

834 commits

Author SHA1 Message Date
Jürg Lehni
de8b626033 Add tolerance argument to Path#join(path, tolerance) 2016-06-11 12:41:23 +02:00
Jürg Lehni
715025725d Improve handling of SymbolItem bounds with #applyMatrix = false.
Closes #1070
2016-06-10 21:32:22 +02:00
Jürg Lehni
ed3e283802 Fix Item#importJSON() to preserve #parent on existing, already inserted items.
Closes #1041
2016-06-10 17:45:02 +02:00
Jürg Lehni
803dfb6bb1 Improve reliability of Curve#isStraight()
Closes #1066
2016-06-10 12:33:44 +02:00
Jürg Lehni
83a20b4c11 Implement unit test for #1059.
Closes #1059.
2016-06-10 12:04:08 +02:00
Jürg Lehni
e1961c2b91 Implement unit test and changelog entry for #1064
Closes #1064.
2016-06-10 10:29:38 +02:00
Jürg Lehni
f19d0c8134 Rename GradientStop#rampPoint to #offset 2016-05-31 12:35:44 +02:00
Jürg Lehni
9017bf1767 Unit test: Fix PaperScript left-over in SVG Export. 2016-05-27 11:37:59 +02:00
Jürg Lehni
9aa29e0afc Add support for construction from strings to Point and Size. 2016-05-27 11:37:19 +02:00
Jürg Lehni
948a8af9a8 Fix Item#strokeBounds with #strokeScaling and #applyMatrix
Closes #1014
2016-05-22 21:17:24 +02:00
Jürg Lehni
cb0810d18a QUnit: Fix tests on Node v6. 2016-05-22 15:59:05 +02:00
Jürg Lehni
eceb133686 Tests: Second attempt to find fitting tolerance for failing gradient SVG export. 2016-04-13 14:37:13 -07:00
Jürg Lehni
6f4738f8b2 Tests: Increate tolerance for gradient SVG export. 2016-04-13 14:08:52 -07:00
Jürg Lehni
d8d61ff160 Fix #1015: Improve handling of already inserted children in#insertChildren() 2016-04-13 13:36:26 -07:00
Jürg Lehni
83a2fa0749 Implement unit test for SVG export of gradients.
Closes #1027
2016-04-06 20:05:32 -07:00
Jürg Lehni
5a9f3dfb27 Improve handling of local paths and CORS on Node.js 2016-04-05 12:11:54 -07:00
Jürg Lehni
27f866df61 Implement test for #1021. 2016-03-27 13:45:55 -07:00
Jürg Lehni
bb19fade56 Travis CI: More SVG test adjustments. 2016-03-17 11:59:41 +01:00
Jürg Lehni
beabd6bea1 Travis CI: Adjust SVG test tolerances. 2016-03-17 11:44:24 +01:00
Jürg Lehni
d6ce4705b7 Travis CI: Use Arial in all SVG tests and reduce tolerance. 2016-03-17 11:35:06 +01:00
Jürg Lehni
17555b1879 Travis CI: See if using Arial solves the failing test. 2016-03-17 11:26:21 +01:00
Jürg Lehni
f7bb96e8b9 Fix #1000: Improve calculation of length of straight curves.
Support sub-ranges now too, through Curve.subdivide()
2016-03-17 11:24:20 +01:00
Jürg Lehni
d93aca6b5c Refactor GradientStop: Improve handling of optionally defined color and rampPoint.
Relates to https://github.com/paperjs/paper.js/issues/1001#issuecomment-197557990
2016-03-17 09:38:42 +01:00
Jürg Lehni
d52a6f3107 SVG Import: Add more tests.
One currently failing.
2016-03-15 19:13:16 +01:00
Jürg Lehni
84d2a2f908 SVG Import: Fix issues with viewBox. 2016-03-15 19:00:35 +01:00
Jürg Lehni
7a4794dacf Add more unit tests for SvgImport.
Some currently failing.
2016-03-15 18:52:38 +01:00
Jürg Lehni
da7d0d8f75 Implement Path#splitAt(offset)
Also make sure the deprecated Path#split(offset) works as it used to. Relates to #563
2016-03-14 18:59:09 +01:00
Jürg Lehni
69c34707e7 fix #994: Revert commit b5af47a7b1
Revert back to correct implementation of Path#getArea() and implement unit tests for it.
2016-02-26 12:58:50 +01:00
Jürg Lehni
1cb291690d Implement unit tests for #991
Tests for item.addChildren()/removeChildren(), some currently failing.
2016-02-23 11:55:03 +01:00
Jürg Lehni
50bd5bee6f SVG: Add comments explaining IE related changes in #984 2016-02-20 00:19:36 +01:00
Jürg Lehni
6df4602b2b Fix #977: Implement unit-tests. 2016-02-16 20:52:07 +01:00
Jürg Lehni
3d330da4fc Fix failing unit tests. 2016-02-15 09:21:11 +01:00
Jürg Lehni
08e51b5ca4 Fix failing SVG unit test. 2016-02-15 08:42:59 +01:00
Jürg Lehni
6f4890c63c Implement new options to control bounding box in SVG Export
And use it to support SvgExport unit tests. Relates to #972
2016-02-15 00:13:38 +01:00
Jürg Lehni
0e2498bdce Switch to PathItem.create() in unit tests. 2016-02-14 23:22:39 +01:00
Jürg Lehni
dba4eb371d SvgImport: Implement options.insert to control insertion.
Also use settings.insertItems for faster import. Closes #763
2016-02-14 22:51:50 +01:00
Jürg Lehni
8d5c922c50 Simplify code from #971 and activate unit test for it again. 2016-02-14 22:15:55 +01:00
Jürg Lehni
01fade8c08 Implement more unit tests for PaperScope#settings.insertItems 2016-02-14 22:04:40 +01:00
Jürg Lehni
4e7fa2f04e Implement PaperScope#settings.insertItems
Controlling whether newly created items are automatically inserted into the scene graph.
2016-02-14 21:34:35 +01:00
Jürg Lehni
56dd636f22 JSON: Improve serialization and deserialization on objects other than Item.
Closes #392
2016-02-14 17:16:40 +01:00
Jürg Lehni
2025bd1a77 SvgImport: Implement onError() callback
Closes #969
2016-02-14 14:52:37 +01:00
Jürg Lehni
fa6c1f47b4 Hit-Test: Pass viewMatrix as argument instead of in options object. 2016-02-14 13:34:35 +01:00
Jürg Lehni
9c9f43d2c9 Implement failing test for #968 2016-02-14 12:44:03 +01:00
Jürg Lehni
4a947317fb Implement #hitTestAll() on Item and Project
Along with unit tests and documentation.
Closes #536
2016-02-14 12:39:35 +01:00
Jürg Lehni
3ee46ffc5c Matrix: Switch to a better implementation of #decompose()
This now also correctly handles skewing in SVG export.
2016-02-14 10:59:57 +01:00
Jürg Lehni
c3fff9fa83 Switch from new Base() to Base.set({}) where possible. 2016-02-13 23:10:09 +01:00
Jürg Lehni
009761d13c Boolean: Only compare segments when determining if paths are identitcal. 2016-02-13 22:58:42 +01:00
Jürg Lehni
3348fb736f Boolean: Implement proper handling of fully overlapping (identical) paths and sub-paths.
Closes #923, closes #958
2016-02-13 22:41:09 +01:00
Jürg Lehni
84a75e375a Remove unnecessary edge-case handling in CurveLocation#isCrossing()
Closes #951, closes #959
2016-02-12 20:52:19 +01:00
Jürg Lehni
e2bc83af5d Add test for #960 and improve fix a bit.
Closes #960
2016-02-12 20:19:40 +01:00
Jürg Lehni
80c8aae5bc Implement unit tests for Item#getItems() with overlapping / inside properties.
Relates to #961
2016-02-12 20:09:41 +01:00
Jürg Lehni
6d5d1ce077 Introduce Base.filter(), to copy and filter object properties. 2016-02-12 19:58:32 +01:00
Jürg Lehni
55c5f42716 Part 1 of large refactoring of bounds handling. 2016-02-12 17:59:37 +01:00
Jürg Lehni
cb79232e12 Travis CI: Use Arial in all tests. 2016-02-11 12:58:06 +01:00
Jürg Lehni
c0b39c4b8f Tests: Implement additional tests for SvgImport. 2016-02-11 12:51:48 +01:00
Jürg Lehni
df57c4adb9 SVGImport: Improve consistency of style handling. 2016-02-11 11:06:09 +01:00
Jürg Lehni
8542eb62b4 Gulp: Add test:browser task, to solve CORS issues on Chrome. 2016-02-11 10:05:21 +01:00
Jürg Lehni
9e8fcee8cd Change implementation of PathItem#flatten(flatness)
- flatness parameter specifies maximum allowed error instead of maximum allowed distance between point
- Parts that are already flat are not further flattened
- Corners are preserved

Closes #618
2016-02-10 14:58:40 +01:00
Jürg Lehni
ed4347714b Remove duplicate unit tests. 2016-02-10 13:26:40 +01:00
Jürg Lehni
0ae232e4ab Implement support for clip-masks in hit-testing.
Closes #671
2016-02-09 17:02:03 +01:00
Jürg Lehni
0371f66bda Do not snap curve points to t = 0 / 1 with epsilon
Closes #936. Also:
- Reduce CLIPPING_EPSILON to 1e-9 to fix errors that were masked by the snapping
- Implement unit tests for edge cases in #936
2016-02-06 15:12:35 +01:00
Jürg Lehni
a59a5354fb Clean-up unit test for #943 and add edge case from #944
See https://github.com/paperjs/paper.js/pull/944#issuecomment-180370569
2016-02-05 21:18:16 +01:00
Jürg Lehni
5a46620768 Merge branch 'winding-fix' into develop
; Conflicts:
;	src/path/PathItem.Boolean.js
2016-02-05 20:25:25 +01:00
iconexperience
e03c8cd198 Replace the "straight curves with zero-winding" test with a more comprehensive one containing more special cases. Also, this test requires that all points on a curve of a path must be counted as inside the path. 2016-02-05 12:45:33 +01:00
Jürg Lehni
336460b51f Define unit test for #internalBounds regression. 2016-02-03 17:38:30 +01:00
Jürg Lehni
922a502ee2 Add #interpolate() method to Segment, Path and CompoundPath
Closes #624
2016-02-02 22:11:06 +01:00
Jürg Lehni
5e53939006 Do not include text-styles in items that don't relate to text.
Closes #934
2016-02-02 21:43:44 +01:00
Jürg Lehni
a02d7248c0 Move Path_Bounds tests to Item_Bounds.
And add a test for shape.strokeBounds without strokeScaling.
2016-02-02 13:55:36 +01:00
Jürg Lehni
21dce1a655 Implement tests for #697
One currently failing due to caching issues.
2016-02-02 13:28:06 +01:00
Jürg Lehni
340a1e2a5f Rename curve-time in API from 'parameter' to 'time'
And create separate versions of methods that receive curve-time arguments instead of offsets.

Curve#getNormalAt(time, true) -> #getNormalAtTime(true)
Curve#divide() -> #divideAt(offset) / #divideAtTime(time)
Curve#split() -> #splitAt(offset) / #splitAtTime(time)
Curve#getParameterAt(offset) -> #getTimeAt(offset)
Curve#getParameterOf(point) -> getTimeOf(point)
Curve#getPointAt(time, true) -> #getPointAtTime(time)
Curve#getTangentAt(time, true) -> #getTangenttTime(time)
Curve#getNormalAt(time, true) -> #getNormalAtTime(time)
Curve#getCurvatureAt(time, true) -> #getCurvatureAtTime(time)
CurveLocation#parameter -> #time
Path#split(offset/location) -> #splitAt(offset/location)

Closes #563
2016-02-02 11:59:53 +01:00
Jürg Lehni
45595b2b1d Fix unit test error on Node.js 2016-02-01 20:20:38 +01:00
Jürg Lehni
a12e99e387 Implement unit tests for SVG Importing, based on visual comparison.
For now, one test for #932
2016-02-01 20:15:37 +01:00
Jürg Lehni
af5984747f SVG: Rename 'SVG' prefix to 'Svg'
- To make it clear it's not browser-provided functionality
- To reflect how DomElement / DomEvent are already named, for the same reason
2016-02-01 12:50:22 +01:00
Jürg Lehni
d68239a541 SVG: Introduce SVGNode object to handle SVG Elements. 2016-02-01 12:31:18 +01:00
Jürg Lehni
bc2729683c Core: Renamed Symbol and PlacedSymbol classes and properties.
- Symbol -> SymbolDefinition
- PlacedSymbol -> SymbolItem
- Symbol#definition -> SymbolDefinition#item
- PlacedSymbol#symbol -> SymbolItem#definition
- Deprecate Project#symbols

Closes #770
2016-01-31 16:52:51 +01:00
Jürg Lehni
567f286774 Tests: Switch to our own gulp-qunits module.
Since it handles PhantomJS as well as Node.js execution, and formats errors identically and quickly.
2016-01-31 12:43:38 +01:00
Jürg Lehni
e0429f44df Tests: Improve QUnit test logging and various cleanup on helpers. 2016-01-31 12:43:38 +01:00
Jürg Lehni
c22911f43b Travis CI: Try installing msttcorefonts to solve the font-size issue in tests. 2016-01-31 12:43:32 +01:00
Jürg Lehni
1c1ff8c808 Travis CI: Try to fix failing test on Travis by specifying font. 2016-01-31 12:43:26 +01:00
Jürg Lehni
639bf07a47 Tests: Clean up Emitter tests. 2016-01-31 12:43:20 +01:00
Jürg Lehni
4c84c3dad5 Tests: Start getting QUnit tests to work on Node.js
Work in progress…
2016-01-31 12:43:20 +01:00
Jürg Lehni
0b991cefdd Only mark an image as loaded if it actually has src set and is complete. 2016-01-27 10:45:39 +01:00
Jürg Lehni
4dd0099094 Fix some linting errors. 2016-01-26 20:33:42 +01:00
Jürg Lehni
fb9bdb4b39 Fetch all dev-dependencies NPM instead of Bower. 2016-01-23 19:01:38 +01:00
Jürg Lehni
ab68c5b272 Implement unit tests for #899. 2016-01-12 12:02:27 +01:00
Jürg Lehni
9a148700b7 Implement unit test for edge case from #799. 2016-01-09 12:16:50 +01:00
Jürg Lehni
c064cb6c43 Implement additional unit tests for dealing with sibling items with the same name. 2016-01-08 16:41:33 +01:00
Jürg Lehni
9eb3e8777e Define unit tests for curve unlinking. 2016-01-08 15:17:40 +01:00
Jürg Lehni
61f5f9bcfa Implement unit test for #757
Currently failing.
2016-01-08 12:28:43 +01:00
Jürg Lehni
3c66c013d1 Implement correct behavior for intersection, subtraction and intersection of fully overlapping paths. 2016-01-08 01:25:35 +01:00
Jürg Lehni
9c1aa47162 Implement unit test for 2nd edge case in #890 2016-01-07 23:19:47 +01:00
Jürg Lehni
1078e1f8a9 Implement winding fix suggested by @iconexperience.
Along with a unit test for the issue.

Closes #890
2016-01-07 10:02:43 +01:00
Jürg Lehni
7152942719 Replace links to issues with short references. 2016-01-06 14:13:02 +01:00
Jürg Lehni
45a8a69d67 Implement unit tests for #885 and #889 2016-01-06 13:20:45 +01:00
Jürg Lehni
dd082de70a Implement unit tests for PathItem#resolveCrossings() 2016-01-06 13:13:59 +01:00
Jürg Lehni
5b98fea3fc Reactivate the previously failing boolean edge case test. 2016-01-06 11:03:53 +01:00
Jürg Lehni
a6e1a1a76d Deactivate one failing edge case unit test for now.
Relates to #887
2016-01-05 11:14:26 +01:00
Jürg Lehni
7bb102e218 Update boolean tests to correct intersection results. 2016-01-04 22:36:57 +01:00
Jürg Lehni
472972ed0c Implement unit tests for #870. 2016-01-04 13:20:20 +01:00
Jürg Lehni
e79fefce96 Implement remaining unit tests from #784. 2016-01-04 12:52:22 +01:00
Jürg Lehni
3e3f32329b Implement unit-tests for all of @iconexperience's isolated edge cases.
Relates to #784
2016-01-04 12:20:00 +01:00
Jürg Lehni
1543d056a7 Add more boolean unit tests from known edge cases. 2016-01-04 11:01:42 +01:00
Jürg Lehni
4e1b26f4e0 Include stroke in boolean operation unit tests.
To compare more than just the filled results, catching additional errors.
2016-01-04 10:47:18 +01:00
Jürg Lehni
b9ee066610 Various fixes in the resemble.js QUnit extension. 2016-01-03 00:29:28 +01:00
Jürg Lehni
b33777274d More work on unit tests for boolean operation. 2016-01-02 18:21:53 +01:00
Jürg Lehni
d832a1ffcb Define unit test for #784. 2015-12-31 14:17:38 +01:00
Jürg Lehni
a4fd2ef3a3 Implement a ton of unit tests for boolean operation. 2015-12-31 14:05:58 +01:00
Jürg Lehni
3035e1d445 Define additional boolean tests and improve resemble.js based image diffing. 2015-12-30 21:55:21 +01:00
Jürg Lehni
a1fcaabed6 Implement item comparison through rasterization and resemble.js diffing, directly integrated into QUnit.
And start using it for boolean operation unit tests.
2015-12-30 21:55:21 +01:00
Jürg Lehni
e9d575e8b1 Switch to QUnit 1.20 (bower), and implement a workaround for hidepassed issues. 2015-12-30 21:55:21 +01:00
Jürg Lehni
0e427c16a2 Fix some white-spaces in comments and HTML. 2015-12-30 21:55:20 +01:00
Jürg Lehni
9d4066da1c Implement unit tests for getWinding() and zero-winding curves.
Closes #819
2015-12-30 21:55:20 +01:00
Jürg Lehni
f34afbc19a Clean up code from #856 a bit. 2015-12-30 21:55:19 +01:00
Jürg Lehni
a7a07fb6d5 Update JSDoc and do some documentation spring-cleaning.
- Convert from {@code ...} to shorter `...`
- Reformat some documentation comment blocks
- Update copyright notices
2015-12-30 21:55:19 +01:00
Jürg Lehni
12dbd3eb26 Add unit tests for isCrossing() and define a new, currently failing test. 2015-12-30 21:55:19 +01:00
Jürg Lehni
f2f34c3b75 Some minor fixes in new #getItems() code. 2015-12-30 21:55:18 +01:00
Jürg Lehni
2fea40f86f Introduce new Item#copyAttributes() & #copyContent(), and revamp #clone() handling. 2015-12-30 21:55:17 +01:00
Jürg Lehni
1d80c13b73 Clean up path intersection tests. 2015-12-30 21:55:17 +01:00
sapics
81a4d142f0 Fix shape.strokeBounds with strokeScaling is false 2015-12-30 21:52:34 +01:00
Jürg Lehni
9a772678a8 Clean up #816 a bit.
Closes #815 also.
2015-10-28 22:17:44 +01:00
Tomas Junnonen
09d4de6a1b Issue 815: Cannot add segment to Path after removing last segment
Fixed an issue where after removing the last segment of a path,
new segments cannot be re-added.

Added new Path Curve test cases to test the difference between
a path with one and no segments (zero curves in both cases), which
catches the bug.
2015-10-28 12:15:07 -04:00
Johan Sundström
1b129feebf Handle exportSVG({ precision: 0 }) correctly 2015-10-27 15:33:09 -07:00
Jürg Lehni
648985fcd2 Fix yet another issue with Path#curves and Path#_add()
Including a unit test to prevent regression.
2015-10-24 18:11:30 +02:00
Jürg Lehni
30e6835745 One more test for correctly linked curves after segment insertion.
Currently failing.
2015-10-24 17:42:36 +02:00
Jürg Lehni
ae2bed9cf0 Fix issue of faulty curves list after inserting segments at the end of open paths. 2015-10-24 17:00:37 +02:00
Jürg Lehni
5afcca928e Define failing test for issue with Path#split() and Path#curves array. 2015-10-24 16:38:13 +02:00
Jürg Lehni
30f1441c26 Various boolean code clean-ups. 2015-09-16 18:34:35 +02:00
Jürg Lehni
d0332f843f Renamed Curve#reverse() and Segment#reverse() to #reversed()
Since they don't modify the object. Also introduce new Segment#reverse(), which does.
2015-09-16 18:16:48 +02:00
Jürg Lehni
56da70c030 No need to pass TOLERANCE.
We're comparing with a default tolerance of 1e-5.
2015-09-13 13:43:50 +02:00
Jürg Lehni
52c0e3e225 Fix boolean test to adress shifted segment sequence.
We really need a circular check for closed path geometry.
2015-09-13 13:26:08 +02:00
Jürg Lehni
d62caf6faa Introduce CURVETIME_EPSILON, to be used when handling curve time parameters.
Relates to #777
2015-09-12 22:55:58 +02:00
Jürg Lehni
31d9e1cd6e Implement Curve#isLinear() to check for parametrical linearity.
Along with some unit tests for it.
2015-09-06 17:56:12 +02:00
Jürg Lehni
9d12a0a82c Rename Curve#isLinear() to #isStraight()
Relates to #652
2015-09-06 17:35:27 +02:00
Jürg Lehni
3f509ed51b Merge remote-tracking branch 'origin/develop' into boolean-fix 2015-09-06 15:37:25 +02:00
Jürg Lehni
d02f29e2f1 Remove legacy Color constructor tests. 2015-09-06 15:37:03 +02:00
Jürg Lehni
fe5916766a Implement various tests for Curve#isLinear()
Some are currently failing.
2015-09-06 13:20:29 +02:00
Jürg Lehni
8b67d8a1dc Remove #isStraight() in favor of #hasHandles() and implement #clearHandles()
Relates to #652
2015-09-06 12:47:35 +02:00
Jürg Lehni
bfbe0b3147 Fix PointText size test on new Safari... 2015-09-06 12:33:41 +02:00
Jürg Lehni
3137843831 Accomodate overlap handling in boolean tests. 2015-08-25 11:45:45 +02:00
Jürg Lehni
da82116501 Rework handling of weighted and normalized curve tangents and normals.
Relates to #563
2015-08-19 17:15:41 +02:00
Jürg Lehni
be603c7da8 Fix Item#pivot test. 2015-08-18 17:23:33 +02:00
Jürg Lehni
f8314f927e Various changes on #isLinear(), #hasHandles() & co
Relates to #652

- Implement #hasHandles() on Path, Segment and Curve
- Remove Path#isPolygon()
- Define #isLinear() consistently across Path, Segment and Curve.
- Introduce new Segment#isStraight()
2015-08-17 14:31:23 +02:00
Jürg Lehni
65f085cc98 Have option.matchShapes control conversion to SVG polygon elements as well.
Closes #753
2015-08-17 14:18:22 +02:00
Jürg Lehni
4ad8875a8c Install qunitjs module as a NPM dev dependency. 2015-07-27 12:25:45 +02:00
Jürg Lehni
3816407ee7 Clean up SVGExport tests. 2015-07-27 11:42:41 +02:00
Jürg Lehni
5604dd7a30 Clean up SVGImport tests. 2015-07-27 10:29:50 +02:00
Jürg Lehni
5f42020869 Increase tolerances in #getAverageColor() tests.
The phantomjs canvas appear to produce less precise results.
2015-07-27 10:03:11 +02:00
Jürg Lehni
26cdbb6805 Fix typo: #isColinear() -> #isCollinear()
Keeping misspelled version around for a while.
2015-06-16 18:39:52 +02:00
Jürg Lehni
07b58e928e Implement unit test for shape.toPath().toShape()
Currently failing for rect.
2015-06-16 18:38:57 +02:00
Jürg Lehni
496b8ecd0f Implement unit test for issue #708. 2015-06-16 12:56:53 +02:00
Jürg Lehni
ba092b316e Implement unit test for error behind issue #676 2015-06-15 19:01:21 +02:00
Jürg Lehni
33c0ef0e5c Rename custom emitter events in unit tests. 2015-05-13 20:24:08 +02:00
Jürg Lehni
75c6db6986 Merge pull request #674 from rumman23/670-custom-events
custom events
2015-05-13 18:14:08 +02:00
Jürg Lehni
593590d707 Start implementing unit tests for hit-testing options. 2015-04-12 15:14:03 +02:00
rumman
11f4fa49b0 emitter instances with base 2015-04-08 21:01:38 +02:00
rumman
33046fff47 emitter tests 2015-04-08 10:42:50 +02:00
Jürg Lehni
7749641e66 Handle out-of-bounds offsets/parameters correctly.
Closes #660
2015-04-04 17:05:39 +02:00
Jürg Lehni
c20b32f748 Implement unit test for #610 2015-01-04 22:10:30 +01:00
Jürg Lehni
f0d28d7529 Implement unit test for #609 2015-01-04 17:46:59 +01:00
Jürg Lehni
ac0663bdd9 Hard-code numerical tolerance in unit tests as it's used in all hard-coded values. 2015-01-04 14:07:43 +01:00
Jürg Lehni
a683493e59 Implement unit tests for path intersection.
Related: #565, #568, #570, #571
2015-01-04 14:01:32 +01:00
Jürg Lehni
5890de3a80 Some more clean-up in unit test helpers code. 2014-12-28 18:23:04 +01:00
Jürg Lehni
644fb71dc1 Implement unit test comparator for Item & co + Project, and further improve new comparator code. 2014-12-28 18:10:53 +01:00
Jürg Lehni
9adbc3774a Implement unit test comparators for many more types, and start refactoring compareItems() helper. 2014-12-28 16:41:23 +01:00
Jürg Lehni
c5a2a51f3e Implement unit test comparator for Color and improve new comparator code. 2014-12-28 15:21:38 +01:00
Jürg Lehni
b8674a3bc1 Implement unit test comparators for Point, Size and Rectangle. 2014-12-28 14:59:48 +01:00
Jürg Lehni
92521d0ac8 Check expected value first for class to be used to perform comparison, since actual value might be wrong. 2014-12-28 14:36:09 +01:00
Jürg Lehni
e95e17826e Start cleaning up unit tests by introducing new class/type-based comparators lookup table. 2014-12-28 14:33:22 +01:00
Jürg Lehni
318209e9e9 Replace compareNumbers() with equals() and improve numerical tolerance handling in test helpers. 2014-11-30 11:27:14 -08:00
Jürg Lehni
99ef521af4 Switch from inline @option tags to real doc tags. 2014-10-20 23:33:28 +02:00
Jürg Lehni
b1329f1db5 Implement unit test for getItems({ empty: true }). 2014-10-20 18:19:47 +02:00
Jürg Lehni
616e848376 Implement handling of empty and editable in #getItems(), and simplify code a bit. 2014-10-18 14:32:21 +02:00
Jürg Lehni
7462fe0b70 Fix Curve.getParameterAt() for negative values of offset, and implement unit test.
Closes #524.
2014-09-28 11:44:38 +02:00
Jürg Lehni
c87ce4de4c Implement Item#replaceWith(item)
Closes #454
2014-09-27 22:52:37 +02:00
Jürg Lehni
0eb96898a3 Clean up Item tests. 2014-09-27 22:50:22 +02:00
Jürg Lehni
8414607cee Define tests for Item#remove() 2014-09-27 22:49:32 +02:00
Jürg Lehni
6450430b68 Implement new strategy regarding Project#activeLayer:
- By default, no layer is created for any project.
- Project#activeLayer is a getter for the hidden #_activeLayer property. When it is called and no layer exists, one is created on the fly.
- Creating any other items creates a layer if none exists (was already the case).
2014-09-27 22:31:49 +02:00
Jürg Lehni
48cb05a181 Replace tabs with 4 white-spaces. 2014-08-16 19:24:54 +02:00
Jürg Lehni
42ab9bbda7 Improve unit tests for CompoundPath#contains() 2014-04-28 16:42:34 +02:00
Jonathan Puckey
c1dda3c2a3 Update Project#getItems test to reflect new functionality. 2014-04-27 23:06:07 +02:00
Jonathan Puckey
4aaf689c1e Add tests for Item#getItems, Item#match & Project#getItems. 2014-04-15 17:10:47 +02:00
Jürg Lehni
93a97c7446 Reflect recent change in Item#hitTest() options. 2014-04-13 18:12:40 +02:00
Jürg Lehni
1f7cb30fa5 Correctly transform Item#pivot when #matrix is applied to an item's contents.
Closes #452 and defines unit tests to cover this bug.
2014-04-11 13:18:27 +02:00
Jürg Lehni
1bede6f7ec Implement tests for hit-testing compound-paths. 2014-04-10 22:27:29 +02:00
Jürg Lehni
f002c633a7 Remove trailing white spaces and ensure newlines at the end. 2014-04-06 13:48:03 +02:00
Jürg Lehni
692535dd97 Fix CurveLocation#offset test to check for correct offsets. 2014-03-30 14:22:40 +02:00
Jürg Lehni
0f5e74a08e Implement failing test for #437. 2014-03-30 13:53:35 +02:00
Jürg Lehni
833d71f7ea Remove Item#type and replace it with Item#className, the non-hyphenated version of #type. 2014-03-18 11:42:38 +01:00
Jürg Lehni
a1c74b8fd3 Explicitly state raster resolution in unit tests.
Since #rasterize() uses the HiDPI resolution if present now.
2014-03-18 11:20:50 +01:00
Jürg Lehni
cf8a668383 Fix HitResult test for new handling of tolerance. 2014-03-04 09:56:46 +01:00
Jürg Lehni
b08cc68ffe Fix newly introduced issue in CompoundPath#moveTo() / #lineTo() 2014-03-04 09:48:41 +01:00
Jürg Lehni
af03f2ed0a Fix unit test for strokeBounds and add new one for corners with miter limit. 2014-02-28 18:01:08 +01:00
Jürg Lehni
78a107da65 Implement unit tests for Point#isOrthogonal() 2014-02-28 17:56:56 +01:00
Jürg Lehni
87d0dc9ead Implement unit tests for Point#isColinear() 2014-02-28 17:54:34 +01:00
hkrish
9e8dbc7c3e Fix false negative and positive in the PathItem_Contains test file. 2014-02-24 19:11:32 +01:00
Jürg Lehni
81137ce7fc Merge branch 'refs/heads/master' into bool-cleanup 2014-02-24 12:19:26 +01:00
Jürg Lehni
a6b1767b2b Apply Matrix test fix from ea0147fe85 in all tests. 2014-02-24 12:19:03 +01:00
Jürg Lehni
94090d144f Merge remote-tracking branch 'origin/master' into bool-cleanup
Conflicts:
	src/options.js
2014-02-24 12:15:38 +01:00
Jürg Lehni
ea0147fe85 Handle slight imprecisions in Matrix tests. 2014-02-22 13:09:26 +01:00
Jürg Lehni
f6061905be Streamline PathItem_Contains tests and add more tests. 2014-02-19 23:53:06 +01:00
Jürg Lehni
641514cbf3 Rename Item_Contains tests to PathItem_Contains and add more failing tests for #400. 2014-02-19 14:35:04 +01:00
Jürg Lehni
a912ed96f6 Define failing test for issue #400. 2014-02-19 14:28:57 +01:00
Jürg Lehni
2010fefcbe Include importSVG() fix for Opera browser. 2014-02-12 09:47:43 +01:00
Jürg Lehni
0dddd897ab Remove internal clamping of color values to facilitate proper mathematical calculations with colors.
Clamp only when producing CSS values. Closes #271.
2014-01-04 18:16:52 +01:00
Jürg Lehni
e22fa3a664 Update copyright notice. 2014-01-04 01:47:16 +01:00
Jürg Lehni
25d8b1f0d2 Clean up code and comments in various places. 2013-12-11 17:10:09 +01:00
Jürg Lehni
48c8946f9e Implement correct hit-testing tolerance using transformed 2D stroke padding rather than unscaled numerical tolerance.
But we still need to factor in the View zoom as well...
2013-12-10 12:52:42 +01:00
Jürg Lehni
e238d23194 Implement caching of internal, untransformed bounds. 2013-12-09 10:53:19 +01:00
Jürg Lehni
5197dd81c5 Fix #fontWeight examples and documentation. 2013-12-09 10:17:10 +01:00
Jürg Lehni
3cd141170a Implement Style#fontFamily and #fontWeight as a replacement for #font.
Closes #60.
2013-12-08 21:12:51 +01:00
Jürg Lehni
2896f14e43 Define test for hit-testing fill with tolerance. 2013-12-08 12:26:11 +01:00
Jürg Lehni
462256c14d Implement failing test for group.position after content changed. 2013-12-07 19:17:30 +01:00
Jürg Lehni
0d39c4377d Define test for issue #344 2013-12-07 16:30:40 +01:00
Jürg Lehni
a837bbb2f6 Better format Point#getDirectedAngle() tests. 2013-12-07 16:28:07 +01:00
Jürg Lehni
9bcfae8661 Use comparePoints() helper in Point tests. 2013-12-07 16:26:17 +01:00
Jürg Lehni
8f20dabf4d Implement test for strokeBounds of closed path with only one segment. 2013-12-07 16:16:26 +01:00
msand
e431154e0e Fix indent. 2013-12-07 16:09:50 +02:00
msand
73b1b9843a Wrote failing test for strokeBounds on paths with a single segment and strokeColor. Implemented fix for failing test. 2013-12-07 15:59:45 +02:00
Jürg Lehni
af4410953f Various clean-ups regarding the handling of activeLayer, JSON deserialization, DOM insertion and and layer reusing.
JSON deserialization does no longer insert items into DOM twice now, and should therefore be faster.
2013-11-24 16:25:13 +01:00
Jürg Lehni
829e878243 Add failing test for creating colors from RGBA. 2013-11-24 00:02:13 +01:00
Jürg Lehni
f8106ae18f Improve code handling special winding cases. 2013-10-18 15:20:32 +02:00
Jürg Lehni
75a209c002 Handle more special cases in winding algorithm. 2013-10-18 15:15:54 +02:00
Jürg Lehni
4f27be8f12 Include new, improved point in path algorithm based on winding number.
It's also possible to switch to using the canvas's native isPointInPath() through options.nativeContains
2013-10-18 14:22:59 +02:00
Jürg Lehni
2a3ede67bb Define more tests for Path#contains(). 2013-10-17 20:18:56 +02:00
Jürg Lehni
8852cad04f Fix SVGExport tests to work with new Shape code. 2013-10-17 13:12:51 +02:00
Jürg Lehni
83be3cb023 Fix SVGImport tests to work with new Shape import. 2013-10-17 13:02:35 +02:00
Jürg Lehni
3958d35f28 Change behavior of Path#fullySelected.
Setting it on empty paths does the same as Path#selected.
2013-10-17 12:03:46 +02:00
Jürg Lehni
7a3448712b Remove duplicate test and clean up code. 2013-10-17 11:32:11 +02:00
Jürg Lehni
1ee6bb7e79 Use isZero() when checking for straight curves in Curve.getLength() 2013-09-23 08:13:32 -07:00
Jürg Lehni
cc565b3fe2 Rename Raster#getSubImage() to #getSubCanvas(), and use insert: false combined with #insertAbove() to correctly insert newly created rasters. 2013-08-14 12:21:47 -07:00
Jürg Lehni
98697eb003 Fix Layer#insertAbove / insertBelow test. 2013-07-21 16:44:30 -07:00
Jürg Lehni
3ee3262f7a Use non-deprecated versions. 2013-07-21 16:13:27 -07:00
Jürg Lehni
092ea182dc Improve tests for moveAbove() / moveBelow(). 2013-07-21 16:11:09 -07:00
Jürg Lehni
cfbd356247 Fix active layer test when calling Layer#clone(). 2013-07-19 18:29:21 -07:00
Jürg Lehni
20a17f2939 Implement insert parameter in Item#clone() to control DOM insertion.
Defaults to true. Also insert in the right place now, above the original.
2013-07-19 18:27:00 -07:00
Jürg Lehni
14888bca50 Define failing test about Item cloning hierarchy.
Cloned items should be inserted right above their originals.
2013-07-19 18:10:58 -07:00
Jürg Lehni
29bdf49a0f Fix tests for deprecated Color constructors. 2013-07-02 07:53:58 -07:00
Jürg Lehni
d369984196 Allow math operands larger than 1 when multiplying and dividing colors. 2013-06-28 07:59:33 -07:00
Jürg Lehni
2c578d0558 Start implementing math operators for Color. 2013-06-28 07:19:53 -07:00
Jürg Lehni
214db84b84 Improve src/load.js to directly load the library through PrePro's load.js 2013-06-26 19:14:54 -07:00
Jürg Lehni
4e173a7d35 Switch to the NPM version of PrePro's load.js 2013-06-26 18:57:46 -07:00
Jürg Lehni
8c9ac92a59 Define failing test for hit-testing bounds on raster items.
Linked to issue #247.
2013-06-23 19:48:46 -07:00
Jürg Lehni
e59ae78285 Improve hit-testing tests for guides. 2013-06-23 19:00:57 -07:00
Jürg Lehni
dca049c6ab Implement failing test for hit-testing guides. 2013-06-23 18:18:49 -07:00
Jürg Lehni
f45fa853e7 Improve new hit-testing test. 2013-06-23 17:54:24 -07:00
Jürg Lehni
3b782f6338 Implement failing test for #243. 2013-06-23 17:52:31 -07:00
Jürg Lehni
1e81176cf1 Merge branch 'master' of github.com:paperjs/paper.js 2013-06-23 17:22:30 -07:00
Jürg Lehni
4b62949318 Fix tests for #246.
This is actually the right behavior: Setting length to negative values should flip around defined vectors.
2013-06-23 17:22:13 -07:00
Jürg Lehni
cf1b5a5df8 Define failing test for #246 2013-06-23 16:55:14 -07:00
Chris Barmonde
68626ca62b Fix project.clear() so it removes all layers properly. 2013-06-20 20:14:47 -06:00