Commit graph

65 commits

Author SHA1 Message Date
Roan Kattouw bb45d984ca dm.MWInternalLinkAnnotation: Fix href normalization for special characters
<a href="Foo%3F"> would dirty-diff to <a href="Foo?"> and also render
as such, pointing to the wrong page.

We also called decodeURIComponent() on the href twice, which can't
have been good.

Move URI decoding and underscore normalization into
getTargetDataFromHref(), and add rawTitle for callers that need it.
Put rawTitle in the origTitle attribute, so that equivalence
comparisons (decode(origTitle) === title) work as intended.

Bug: T145978
Change-Id: I29331a4ab0f8f7ef059c109f6813fa670a2c7390
2016-09-22 09:10:41 -07:00
David Lynch 5bc54fd036 dm.MWInternalLinkAnnotation: Add some test cases
Change-Id: Ie338d5538959ea2cc296886b623e9dc2cd84fa8f
2016-09-21 09:57:45 -07:00
Ed Sanders 5788340b49 Update VE core submodule to master (632f0a9)
New changes:
14b5fbc [BREAKING CHANGE] Move originalDomElements to the IV store and use MD5
c5d21f0 Provide methods to (de)serialize transactions

Local changes to move originalDomElements to IV store

Depends-On: I8a71c1a40ec35108d0a9a388da6f75632f8dc53c
Depends-On: I32c9b5f984fcf96e3354841ecfcd444149e8f159
Change-Id: I0fbb6324eede94558426178cbdad6b5daf0f8318
2016-08-24 18:14:14 +00:00
Ed Sanders 40d606abdc Test removing all table classes
Bug: T138896
Depends-On: I2698428f0aa69e2dcec2680efed44d064bf6e542
Change-Id: I5df5d51fc5b69df6eae40ac29f6b82f446b26ae8
2016-06-30 17:41:42 +01:00
Ed Sanders aeca19c9ea Ensure text version of counter is written to external links when copying
Bug: T137503
Change-Id: Iae791253ea272847984fee5d0586dc302027f1bd
2016-06-27 22:17:58 +01:00
Ed Sanders b7d25d92bc Detect the type of plain pasted links
Using the same logic we used for converting pasted URLs, detect
internal links by matching their base.

Currently link pasting is still disabled in the VE target, but
has been enabled elsewhere (Flow).

Change-Id: Iebd61abbe1fe82fd18d129e1dbc815ca75f44e87
2016-03-17 19:30:13 +00:00
Ed Sanders 5e6cbc187c Link pasting: Match RDFa-less links as external
Now that some targets support link pasting (Flow) we need to
make sure that pasted links match to an allowed type ('link/mwExternal')
instead of plain 'link' annotations which should never exist
in an MW document.

In a later commit we should auto-detect internal links.

Change-Id: I7faae834aa6e730c3cf93a691331a05fd0fe3d5c
2016-03-17 17:18:41 +00:00
Ed Sanders 094555cb3c Remove mwReference tests, moved to Cite extension
Change-Id: I07a2bf45117c2d14c7b00875c0a710e20980a23a
2016-02-05 21:36:56 +00:00
Ed Sanders 0ed45dbf61 MWTable: use new sanitization method
This prevents tables from getting sanitized even on
VE to VE copy. Also by calling ClassAttributeNode sanitize
extra CSS classes are removed.

Bug: T97462
Bug: T125220
Depends-On: Ia3ce386b2a03bc227818b10423bca72c736c0656
Change-Id: Ifd91e00b40665b446bbdcdf8859d2bb641bc0e67
2016-01-29 10:29:19 -08:00
Ed Sanders b66aa990ba Follow-up I9714cf3: Add tests for wikitable paste
Bug: T85577
Change-Id: I8e2893c9a6f80fafe6cae142e4f50ffbe6d550ac
2016-01-22 20:13:26 +00:00
David Lynch 3cffb489bb Stop using broken image links in tests
They make it a little bit more cluttered to hunt down problems when
testing. So, use the minimum image instead of just "Foo" or similar.

Bug: T121636
Change-Id: I3209c377ad870f669cac7d40d991968cff52c39e
2016-01-06 17:11:38 -08:00
James D. Forrester ada58df361 build: Bump file copyright notices for 2016
Change-Id: I3c618c196e504a80ca297a4132a17f1977a24fb7
2016-01-03 14:57:25 -08:00
Ed Sanders ae26eefb05 Fix typos
Add some common ones to typos.json

Change-Id: I3830be4949ab6a5fd998d6937ed83e9f18091c2b
2015-12-09 16:47:13 +00:00
Ed Sanders 68755b212e MW Examples: Fix test message
Change-Id: I4a0b9bb92fa45fca82391943b86a43fec8f2e3a1
2015-11-20 20:34:18 +00:00
Ed Sanders 287436ae25 Add tests for RESTBase ID comparison
Depends on I8323bbf34 in core.

Change-Id: I4043322361cdbbfd211133191c062eae42269ca4
2015-11-20 20:34:12 +00:00
Ed Sanders 3d7d363e9c Improve tests of data-parsoid annotation comparisons
So that it actually fails if you remove the key feature.

Depends on Iff15190e in core.

Change-Id: I1557f683241193aa4a97e04af0b4daf244a8b121
2015-11-20 12:32:29 -08:00
James D. Forrester c714eb173c Update VE core submodule to master (062cb26)
New changes:
6cae77b ElementLinearData: Add another case to hasContent
d2e15f2 SurfaceFragment: Improve handling of delete all
16db2a3 Return 'null' instead of null in ve.Filibuster observers
24de6b2 Introduce key down handlers to separate logic from ce surface
f77fe99 Localisation updates from https://translatewiki.net.
062cb26 Localisation updates from https://translatewiki.net.

Change-Id: I61c94983c7898af219266af3022761638c7578b7
2015-11-03 10:36:53 +00:00
Ed Sanders 9fb6977e52 Update VE core submodule to master (363adf2)
New changes:
63c5f67 [BREAKING CHANGE] GeneratedContentNode: Introduce new hash for rendering
6dd1cb2 Add ve.dm.Surface#selectLastContentOffset

Local changes:
* Use new getHashForRendering in GeneratedContentNode users

  As we no longer have a model hash, remove the originalIndex check
  and just rely on the deep comparison of mwData (trading a deep copy
  for a hash computation should result in similar performance).

Bug: T114689
Change-Id: Ida0ee0234418408b735232c633d41908a424a9ff
2015-10-07 15:00:32 +00:00
Roan Kattouw e4d2d4785e ve.dm.MWImageModel: Require parent document
Add a parentDoc parameter to the MWImageModel constructor and use
it to inherit language, direction and HTML document. Remove
getLang(), setLang(), getDir() and setDir() whose only purpose
was to propagate the language and direction from the parent document
in a hacky way.

Also add a parentDoc parameter to newFromImageAttributes(), replacing
the lang and dir parameters. Remove the unused and ill-conceived
caption parameter.

This causes caption documents to always have an HTML document
for URL resolution. Previously, this worked when editing existing
images because a document generated by cloneFromRange() (which
propagates the HTML document) was passed into setCaptionDocument(),
but it didn't work when creating new images.

Bug: T109599
Change-Id: Ida36862092cd779ffc2f04c0ecbc1164f8d71453
2015-08-27 00:09:21 -07:00
James D. Forrester f5c6f61163 build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
Change-Id: I846d36c15e1b1f810d2ef7fd422f8412790bcb0f
2015-08-19 10:33:02 -07:00
James D. Forrester e282522cf2 Update VE core submodule to master (cf224ad)
New changes:
263b4fc Localisation updates from https://translatewiki.net.
0487dcc ve.dm.CommentNode: Add space to comments' clipboard html
3a5422b DebugBar: Add a close button

Change-Id: I9ff3a77a3eb8d2d9a9dc61aa6cb52db577d1592e
2015-08-18 10:24:39 +01:00
Jforrester dbe11c3b14 Revert "Revert "For empty / whitespace-only headings, output <p> instead of <h#>""
It's seemingly still needed.

This reverts commit 924c58a893.

Change-Id: Ib9428865fbab2669153bd23cf239717080eb8291
2015-08-03 22:49:16 +00:00
jenkins-bot 31e45cf530 Merge "build: Drop last jscs over-ride and make pass" 2015-07-23 18:48:48 +00:00
James D. Forrester 57f8fc5368 build: Drop last jscs over-ride and make pass
Change-Id: I4ff60af79cfc6e09e284d51f9b7ac2afa900f0f5
2015-07-22 15:13:09 -07:00
jenkins-bot 8d467915f7 Merge "Revert "For empty / whitespace-only headings, output <p> instead of <h#>"" 2015-07-22 22:05:34 +00:00
Ed Sanders aeedd808cd Never use original data optimisation when in clipboard mode
In clipboard mode we need the full body regardless of if the reference
has changed since load or not.

Bug: T104230
Change-Id: Ie59e04d381f2fd2680e8af0cf05a80df71052822
2015-07-10 19:45:56 +00:00
Ed Sanders 924c58a893 Revert "For empty / whitespace-only headings, output <p> instead of <h#>"
Functionality is now provided by Parsoid's scrubWikitext.

This reverts commit 884f301aa0.

Change-Id: I19f340a1c2d9718bfa05c6667042488f3a589719
2015-07-09 11:46:50 +01:00
Ed Sanders 965a5dde89 Give TranclusionNodes a matchFunction so they beat LanguageAnnotations
This is a hacky fix, we should find a better way of telling the
model registry that language annotation loses to certain RDFa types.

Bug: T101977
Change-Id: I8be3aa55cbbc2832b8a02a15de27289b3041967e
2015-06-16 14:12:37 +01:00
Ed Sanders b7f92605b2 Move test registry hacks into QUnit setup/teardown hooks
Change-Id: I7b56bc7a9a69f64073ab97bdb1911d17b328b8b8
2015-06-02 14:36:10 +01:00
James D. Forrester 85381a6b75 Update VE core submodule to master (2714bfc)
New changes:
8dc8b26 Trim leading and trailing whitespace from annotations
306feb4 Add get(Col|Row)Count to TableSelection and use in isFull*
1c06d21 Cursor holders for native cursoring to ce=false nodes
b08384d Provide file extension fallback for FileTransferHandlers
28844ed [BREAKING CHANGE] Move all icons to OOjs UI's icon packs
9d37355 demo: Set 'lang' attribute of target
8945420 Follow-up 8dc8b266: account for annotations that return []
c2bbc97 Localisation updates from https://translatewiki.net.

Local changes:
* Switch to using OOjs UI icons for VisualEditor core features
* Update test for whitespace trimming

Change-Id: I12b22a411600b6e8e61858e7ed600fb53eedd95d
2015-04-16 14:02:59 -07:00
Ed Sanders fdcd42f73a Split AlienExtensionNode into inline and block
MWExtensionNode:
* Inherit from LeafNode at the top level. Inline and block only
  differ in CE where inline has isContent set.

MWAlienExtensionNode:
* Inhert from MW(Inline|Block)ExtensionNode respectively. Both
  mixin MWAlienExtensionNode.

Bonus:
* Bring in paragraph unwrapping on inline nodes from MWMathNode

Bug: T93712
Change-Id: Ib04234f740cf1f27c861d8b3cfeea5e323b94678
2015-04-09 16:32:02 +01:00
Ed Sanders 1be77a90e3 Add unit test for mwAlienExtension node
Change-Id: I0323cf16f103ad801127568afe75e03d90e62c37
2015-03-23 16:06:09 +00:00
Roan Kattouw 884f301aa0 For empty / whitespace-only headings, output <p> instead of <h#>
Because sending HTML like <h2>  </h2> or <h2></h2> to Parsoid
produces undesirable output like ==  == or ==<nowiki />==

Bug: T51452
Bug: T52100
Bug: T57769
Bug: T61647
Change-Id: If15a1b4b31d4f08c23ecdf2ecf61a8a14a77259a
2015-03-20 23:05:37 +00:00
Ed Sanders b83d23c620 Update VE core submodule to master (b57d224)
New changes:
541659f [BREAKING CHANGE] Remove domElements attribute from aliens

Local changes:
* Update alien tests

Change-Id: I26a7ebc709fae9d2365a7f9ce2c4cfdcc10620a2
2015-03-18 14:16:10 -07:00
James D. Forrester 70cff83f68 Update VE core submodule to master (6bd2ea5)
New changes:
44ca3b6 Use store indices in annotate operations
3ebbcce Make range optional in getUsedStoreValuesFromRange
9d03a5e Set originalDomElements whenever a data element is created
4cfffde Simplify annotation hashes
4eeb8bb Add handlers for font annotations
4a6d6f0 Localisation updates from https://translatewiki.net.
05de45e ve.ui.ToolbarDialogTool: Fix documentation
6797d6d Use type from toDataElements when creating annotations
b3a3839 Store reference to DM document in transactions
c073a24 Load special characters in Platform instead of SpecialCharacterDialog

Local changes:
* Add new files to VisualEditor.php
* Re-sort i18n strings in VisualEditor.php
* Re-run extenson.json creation
* Update documentation HTML file
* Update tests for adjacent annotations fix

Change-Id: I7a5e79e68ab8a7aae0e9af42d011943019f7f85f
2015-03-18 12:15:24 -07:00
Moriel Schottlender bbb5c84149 Remove MWTransclusionMetaNode
Since all transclusion nodes can be interacted with (including the
'hidden' ones,) there is no need for MWTransclusionMetaNodes.

Change-Id: I23d37e3d82029b7475ec68ebb04883c7e05370cc
2015-03-12 13:12:32 -07:00
Ed Sanders f4221167a7 Test for class attribute duplication bug
Depends on I8b48376 in core.

Bug: T88148
Change-Id: I63c3fa939495659becd72f93fc5aac881629327f
2015-03-11 10:42:14 -07:00
jenkins-bot 557e0e28ad Remove use of ve.indexOf and ve.getObjectKeys
Change-Id: Icbaa729209605fca8018e4bcbbe29c9ded64e7f2
2015-03-10 17:28:00 +01:00
Timo Tijhof 9fd753e7a7 build: Enforce disallowMixedSpacesAndTabs jscs rule
Also, fix @returns comments (should be @return) and remove unnecessary
@method comments from the documentation.

Change-Id: Icd303626ac745c7ab5bff164f9b8cac276de1523
2015-03-07 16:49:30 +00:00
Ed Sanders 66aebc4fb0 Update VE core submodule to master (8434ab8)
New changes:
0bc7034 Fix unmodifiedness test in showSelection
6e27ea1 Test clipboard mode in converter
5481dc5 Localisation updates from https://translatewiki.net.
f7623bd ve#resolveUrl: stop accepting string values for base
bce9180 ve.ce.FocusableNode: Remove superfluous ve.ce.Surface#appendHighlights call

Local changes:
* Update test case counter for clipboard tests
* Add clipboardBody to tests

Change-Id: Ie0f149b74abf10e740be63e3759416ecc8bed656
2015-02-22 19:25:09 -08:00
James D. Forrester c3e74a806a Update VE core submodule to master (bf202b6)
New changes:
159ed9b Add 'width' and 'height' to the list of attributes corrupted by IE
a41b51a ve#track: refactor callback calling convention
4280219 Generate CommentNodes more leniently
bf202b6 Fix old metadata tests to use actual metadata

Change-Id: Ia8515d12f5d443e4e07b2c8291bf127341312e1e
2015-02-21 22:50:48 +01:00
Roan Kattouw 3611664663 Update VE core submodule to master (7d2a68e)
New changes:
0ceafd5 Fix V8 deopt for ve.ce.BranchNode#onSplice
01d2d4b [BREAKING CHANGE] Store originalDomElements instead of htmlAttributes
96005a7 Localisation updates from https://translatewiki.net.
42e672e ve.ui.Toolbar: Don't call #updateToolState from #initialize
373562d Localisation updates from https://translatewiki.net.

Local changes:
Update for htmlAttributes going away

Change-Id: I576a1e5d5883b03d1fff6666926f80a5682a280f
2015-02-18 15:35:46 -08:00
Ed Sanders d735130d8d Add tests for MW node variants (heading/table/pre)
Requires more model registry hacking.

Bug: T74398
Change-Id: I6d27dba0b9a198fc3b450914ce06267c9039ba35
2015-02-17 13:03:59 +00:00
Roan Kattouw 9a4c192c44 Update VE core submodule to master (f86c97c)
New changes:
e325520 Create APIResultsProvider and APIResultsQueue and add tests
4ead645 Make newFromAnnotation test construct doc2 from data, not HTML
804fb17 Remove useless getDataElementFromDomElement / getDomElementsFromDataElement tests
c2fc6a0 DomFromModelTest: Call modify() on the document, not the data
1535331 Inline ve.ce.View#renderAttributes

Local changes:
Update modify callbacks to work on document instead of data.

Change-Id: Ia875d11627adc38f78dd5010f9ab03e8b083b448
2015-02-16 11:44:34 -08:00
Ed Sanders ec4acecf33 Correctly tag clipboard DM from MWTransclusionNodes
Iff in clipboard mode:
* Set data-ve-no-generated-contents on the main element
  regardless of whether we are using orignal DOM elements.
* Set data-ve-ignore on siblings, again, regardless or
  where they came from.

Bug: T89658
Change-Id: I82ad60f0b90e0c6ce88c42737bd36d1a289bcf34
2015-02-16 16:52:04 +00:00
Roan Kattouw 3528aeb8d3 Rename test modules to stop confusing QUnit
Some modules had the same name as test modules in VE core,
and this broke expand/collapse behavior in QUnit.

Change-Id: I7fd0b454b3377b7c289ddebbf91146fcbe5945c4
2015-02-13 16:12:03 -08:00
Roan Kattouw 26e5a885bc Support specifying reference contents with data-mw.body.id
If data-mw.body.html is not set, search for the element
whose ID matches data-mw.body.id and use its contents.

.body.html is still used for new content: new references
use .body.html, and if a reference using .body.id is
changed, the changed HTML is output in .body.html.

Bug: T88650
Change-Id: I5d614927256d59a3ab20b0bd6e882b5cb8fcda20
2015-02-09 20:54:50 +00:00
Roan Kattouw 396eb606a6 Update VE core submodule to master (83a526a)
New changes:
23a9e11 Localisation updates from https://translatewiki.net.
9f1350f Update UnicodeJS to v0.1.3
f869803 Localisation updates from https://translatewiki.net.
ce11fb3 Use css class rather than jQuery show/hide
0d4584c Fix definition of ve.Range#containsRange
8a5c7d9 Fix rangeInsideOneLeafNode
8ce5f60 Localisation updates from https://translatewiki.net.
d2104aa Track originalHtml in internalItems
9823624 Localisation updates from https://translatewiki.net.

Local changes:
Update tests for internalItem originalHtml change

Bug: T88650
Change-Id: Ie7532cade7e3006e1bf39c12c97962da415ab993
2015-02-09 11:29:43 -08:00
Roan Kattouw bc51095888 Improve references test data
* Remove unused extsrc
* Add <a>s inside of reference <span>s
* Add <li>s inside of reference list
* Change reference list to one for the g1 group rather than the main group
* Consequently, the reference defined inside the reference list moves to g1
** Due to a bug, explicitly set group="g1" on that ref for now

Change-Id: I266a4323c7353e00bd4288d5de51c252bbcdf3d7
2015-02-03 16:43:15 -08:00
James D. Forrester bed038b509 build: Bump devDependencies to latest
Updates:
* grunt-contrib-csslint  0.3.1  ->  0.4.0
* grunt-contrib-jslint   0.10.0 -> 0.11.0
* grunt-jscs             0.8.1  ->  1.2.0

For jscs, leaving requireSpacesInsideArrayBrackets to avoid headaches for now.

Change-Id: I62d34444edbba65c8bd22d2fa5e50e16cabb0042
2015-02-02 14:30:39 -08:00