Commit graph

4705 commits

Author SHA1 Message Date
Arlo Breault d6bcc0ef14 Prefer nullable types in comments
This was done with a custom sniff in,
MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php

`$singleType === 'null' && count( $explodedType ) === 2`

since there's some ambiguity with,

`what|type|null`

but also a case like the following is left out,

`string[]|null`

Change-Id: I1bd50a4486d7ef4974280b476fd03d3ee53232b3
2020-07-29 14:24:32 -04:00
C. Scott Ananian a0faedb942 Sync up with Parsoid citeParserTests.txt
This now aligns with Parsoid commit 77db605163990ad851e3da0fb4fa7eca2081f379

Change-Id: I19ad9f1b6845e5557c2f5f87ac435db0ad87000d
2020-07-28 15:53:08 -04:00
jenkins-bot 66eab58739 Merge "Restore preview of a <references> section alone" 2020-07-28 13:19:01 +00:00
Translation updater bot 099b526f57 Localisation updates from https://translatewiki.net.
Change-Id: Idb61cddad363fdf5001393e2fde9156fab819216
2020-07-28 08:24:15 +02:00
Arlo Breault cdf8ac149b Wrap extension token so that it won't be exposed
Alternative to I6ea271a5d5c7b12a13bb12a682c39bcfd7b1f116

We can follow this up by passing the ExtensionTag to the
ExtensionTagHandler constructor.

Change-Id: I5b1b191bc85968ad617eb3ebcdd7721c55006af2
2020-07-23 14:51:24 +00:00
Thiemo Kreuz 3de3bf4545 Remove unused Cite::$isPagePreview flag
This is dead code we forgot to remove in I7088f25.

Bug: T238195
Change-Id: Iff1d3668beb9d530348ec9f90124774248e59407
2020-07-23 11:46:42 +02:00
Thiemo Kreuz 41149d8072 Restore preview of a <references> section alone
We broke this feature in December 2019 because it was never covered
by any tests. Full explanation in T245376.

All the features we care about are covered by tests. If all existing
tests succeed, that should be proof enough that this patch does not
introduce any new regression.

Bug: T245376
Change-Id: I1a447884bdc507ac762d212466496b4591c18090
2020-07-21 13:19:38 +02:00
Translation updater bot f347863eab Localisation updates from https://translatewiki.net.
Change-Id: If8e268476129ad0bf04bb0803dcd8b413872c875
2020-07-21 09:10:42 +02:00
libraryupgrader d52f8cf5c2 build: Updating grunt to 1.2.1
Change-Id: I64ccb005689bd13caa12aadeca85cc3454bea318
2020-07-18 02:08:25 +00:00
libraryupgrader 063cc59e83 build: Updating eslint-config-wikimedia to 0.16.2
Change-Id: Ic73890c4398c3f08946b4c9677d7e24c634ae7ba
2020-07-15 21:59:30 +00:00
C. Scott Ananian 90728bde87 Sync up with Parsoid citeParserTests.txt
This now aligns with Parsoid commit 7321ab547b7663ba86c1cfe0bc021ff1918c0970

Change-Id: I2cc88069b19e7611f23c83ca993f9caa70f786f0
2020-07-15 11:39:46 -04:00
Translation updater bot 3f9fd850e0 Localisation updates from https://translatewiki.net.
Change-Id: I979a5dd85180836d86f00a857a7453e2fd9b3b48
2020-07-15 09:03:39 +02:00
Nikerabbit 98efd80db7 Revert "Localisation updates from https://translatewiki.net."
This reverts commit 502d410c5d.

Reason for revert: Broken export

Change-Id: I4edb1b6450b6a8f6bac5b7b0a5e31498e69483be
2020-07-13 11:28:34 +00:00
Translation updater bot 502d410c5d Localisation updates from https://translatewiki.net.
Change-Id: I195bfb4275b0fdb3829b1ee3bdea43c5b8f4ab9b
2020-07-13 08:41:10 +02:00
Translation updater bot ed112b3608 Localisation updates from https://translatewiki.net.
Change-Id: I14d1e5fb81c58b0fb538d81ced8ea17b2f9c34e1
2020-07-10 08:25:24 +02:00
libraryupgrader e0bf47fc21 build: Updating lodash to 4.17.19
* https://npmjs.com/advisories/1523
* CVE-2019-10744

Change-Id: Icbf623aff71c82186be967f9b68587ddcb2fcd99
2020-07-09 03:47:47 +00:00
Translation updater bot 9b5fbae45c Localisation updates from https://translatewiki.net.
Change-Id: I2e93639a7110c6c53b7820f176ef0448dab7608c
2020-07-06 09:50:16 +02:00
sbailey e29b51ebcc Match core error key for self-closed ref without name
* Bug fixes to accurately match core cite use of
   cite_error_ref_no_key error and adjusted citeTests to match.

Bug: T51538
Change-Id: I3ae5300a5f86decebb7e67c5ea57c0c15677fbcc
2020-07-02 19:15:18 -04:00
Arlo Breault dd396cb539 Rename "cite_error_ref_no_text" to "cite_error_references_no_text"
Matches the key in core.

Follow up to 4438a72

Bug: T51538
Change-Id: Ibe8deb11764e642422b97b847ea6ec121bbb0167
2020-07-01 14:26:34 -04:00
sbailey a2c63c2e5e Add Cite error for named refs that attempt to redefine the content
* named refs which attempt to redefine the content are flagged with
   an error, but not follow on named refs that leave content blank
   or repeats the original content.

 * Fixed cite tests affected by this change to include !! html/parsoid
   sections.

Change-Id: I6832603c523a0465a6cc08f68c9ca79499331cd7
2020-06-30 21:07:50 -04:00
Arlo Breault 47506af785 Remove $nestedRefsHTML
Keep the contents in the references and serialize at the end, which
allows us to mark up the errors there.

This is a follow up to 4438a72 which resolves the FIXMEs added in
8cb34b6.

Change-Id: Ia5b5cdbd0e9f3b5c558b8bbc5eb4b9955f4922c9
2020-06-26 08:30:42 -04:00
Translation updater bot e0e3effa51 Localisation updates from https://translatewiki.net.
Change-Id: Ic7e5175f1c8333e8cb52be9098381adb0e970172
2020-06-26 09:19:22 +02:00
Arlo Breault 936da16c3b Move setting data-mw on autogenerated references to createReferences
Change-Id: I2fb41ac5eb298d7388543b98cf81c683ded585ed
2020-06-25 19:05:01 -04:00
sbailey 8cb34b6a4c Add an html/parsoid section for "Error conditions on non-visible content"
Also, FIXMEs for a follow up to 4438a72 that's exposed by this test.
Nested refs in references aren't getting marked up for the
"cite_error_ref_no_text" errors, where applicable.

Change-Id: Ie6e461571402a96e47d3df26585d9a40f1038891
2020-06-25 19:04:57 -04:00
Subramanya Sastry d69aea2feb Extension API: Use generic 'context' option instead of 'inlineContext'
* This lets us expand the range of available contexts in the future
  without needing API changes.

* This patch only touches extension and extension API code. Parsoid
  internal code can be changed independently.

Change-Id: I51d4c2120a31efb6dbb409926f8f8dad61f4dcc3
2020-06-25 17:34:01 -04:00
sbailey 4438a72297 Adding error handling for cite refs with name but no content
* Detects grouped and named refs that fail to define content.

* Uses group and name ref list tracking info to back patch
  'mw:Error' and i18n error key string into the data-mw
  section of all instances of named refs that all fail to
  define content.

* The failures for test References: 7b is because selser is
  arguable smarter than wt2wt. The newline before the references
  list has been randomly deleted but selser manages to restore it
  from source. wt2wt doesn't put the references tag on a line by
  itself, even though it asks for block format, because it isn't
  a new list - (these comments are from Arlo's review)

* Added test: "References: 7b. Multiple references tags some with
  errors..." to ensure that refs with and without content errors
  grouped and named do not cross references section boundaries.

Bug: T51538
Change-Id: I884fc337165506c5abbef18bcd5a5fca015786d2
2020-06-25 14:58:08 -04:00
vidhi-mody 7d0c85afe6 Selenium: Update to WebdriverIO v6
Update NPM packages: @wdio/* and webdriverio.

Bug: T253343
Change-Id: I98d452af0af248cf7221e355550ed8b7b8975aa4
2020-06-25 15:12:19 +05:30
jenkins-bot 00b2a0a4b1 Merge "Selenium: Update to WebdriverIO v5" 2020-06-25 06:43:23 +00:00
vidhi-mody 76c38c766d Selenium: Update to WebdriverIO v5
Update NPM packages: webdriverio, wdio-mediawiki.

Replace NPM packages:
- wdio-mocha-framework with @wdio/mocha-framework.
- wdio-spec-reporter with @wdio/spec-reporter.

New NPM packages: @wdio/cli, @wdio/local-runner, @wdio/sync.

Replace:
- `browser.element` with `$`.
- `browser.elements` with `$$`.
- `chromeOptions` with `'goog:chromeOptions'`.
- `password` with `mwPwd`.
- `username` with `mwUser`.
- `waitForVisible()` with `waitForDisplayed()`.
- `isVisible()` with `isDisplayed()`.

Bug: T253343
Change-Id: Ia656c8bc9fa76ae80bc356dc18c821a93b8cd875
2020-06-25 01:19:38 +05:30
Arlo Breault e911944c5f Clarify when content is missing in cite
Change-Id: Icbf195059ddae410944ecdcaf02cbfff7f962bf2
2020-06-23 10:54:06 -04:00
Translation updater bot 0de5f8ef63 Localisation updates from https://translatewiki.net.
Change-Id: I22fea7087a478dae12bc7e2fc51f3c1c15e67b4a
2020-06-23 08:50:45 +02:00
Translation updater bot 845456ecdf Localisation updates from https://translatewiki.net.
Change-Id: Ib8536062ffe7ebfa3b56125b4a72563c0054e935
2020-06-18 08:36:39 +02:00
Translation updater bot 6885f86c64 Localisation updates from https://translatewiki.net.
Change-Id: I2026093debbc3869a268e0480f30902ea7928301
2020-06-16 08:33:19 +02:00
Subramanya Sastry faaf81140d Fix extensions to use Ext\DOMUtils instead of Utils\DOMUtils
* Added a couple missing helpers

Change-Id: Ia789e6f8fe6e53d187bd631003234930b3cee3f0
2020-06-12 16:43:24 -05:00
jenkins-bot 631d5186b7 Merge "ve.dm.Node: blacklistedAnnotationTypes -> disallowedAnnotationTypes" 2020-06-12 17:32:15 +00:00
Ed Sanders e66dd259e6 ve.dm.Node: blacklistedAnnotationTypes -> disallowedAnnotationTypes
Bug: T254646
Change-Id: I38f8c1a8259c2ca1ae1ea4d4ce374fc39f46f676
Depends-On: I8e23231bf4ff4022a85b4dfe214184fbb3543fce
2020-06-12 10:13:19 +00:00
Translation updater bot 112f1466b6 Localisation updates from https://translatewiki.net.
Change-Id: I84b5aba3d58f2f9c7952ea2776ed5dffeab8b95f
2020-06-11 09:01:07 +02:00
Arlo Breault 1446ca248c Whitespace only is considered no content
Follow up to 0cac84e

Bug: T51538
Change-Id: Id84cc2ff9d734f94b7788a9bc0cea059522c9a0c
2020-06-09 15:17:39 -04:00
jenkins-bot 40e123fb35 Merge "build: Update devDependencies" 2020-06-09 11:16:00 +00:00
Ed Sanders a93b3c5185 Remove unused test constant
Change-Id: I1ee23cd4f6ba5a6851d4717f303d2b880da338cd
2020-06-09 11:29:34 +01:00
Ed Sanders 85a4e23008 build: Update devDependencies
Change-Id: I38b506d6e058f639e0e7d95c3e60616dbef5af10
2020-06-09 11:29:03 +01:00
Translation updater bot c7dbd173b3 Localisation updates from https://translatewiki.net.
Change-Id: I94b82d72727660edd4c9ac34f2566a5edce71ce5
2020-06-08 08:49:16 +02:00
libraryupgrader 406e871074 build: Updating mediawiki/minus-x to 1.1.0
Change-Id: Iaec553f11b2ccbd389d63e2a6d6e878d9ac40ee7
2020-06-08 05:54:15 +00:00
libraryupgrader 0dc25f2c5b build: Updating mediawiki/mediawiki-phan-config to 0.10.2
Additional changes:
* Removed phan-taint-check-plugin from extra, now inherited from mediawiki-phan-config.

Change-Id: I280ee7f72faecad666cb088be9950f9a5250c9c9
2020-06-02 10:51:05 +00:00
Translation updater bot ab2b0aff53 Localisation updates from https://translatewiki.net.
Change-Id: I66afc562eafdb21917139d8eecdeb333010c7401
2020-06-01 09:56:43 +02:00
libraryupgrader aaf5285571 build: Updating composer dependencies
* php-parallel-lint/php-console-highlighter: 0.4.0 → 0.5.0
* php-parallel-lint/php-parallel-lint: 1.0.0 → 1.2.0

Additional changes:
* Replaced "jakub-onderka" packages with "php-parallel-lint".

Change-Id: I9048d6c1c3af412109b67b78d431f4aab7c3060c
2020-05-31 00:39:30 +00:00
jenkins-bot ec71504b8d Merge "Sync unicode-bidi property for <sup> tags between Parsoid & core impls" 2020-05-29 21:00:33 +00:00
C. Scott Ananian 98d68bfa6e Use wikimedia\object-factory for extension objects; hook up ExtensionRegistry
Mediawiki prefers to use an object factory pattern when creating objects.
Use ObjectFactory consistently when creating objects specified using the
extension API.  Thanks to the 'allowClassName' option to
ObjectFactory::getObjectFromSpec(), this is mostly consistent with
previous practice.  Note that the string class name is short for:
   [ 'class' => Foo::class ]
and so we've chosen to rename the 'class' property in the extension tag
configuration so that we have (in long form):
   [ 'name' => 'Cite', 'handler' => [ 'class' => Cite::class ] ]
instead of nesting two keys named 'class' in a row.  (And besides, the
content isn't really a 'class' any more, it's an "object factory
 specification".)

SiteConfig::registerExtensionModule() can now take *either* an object
factory specification for an ExtensionModule object (including a bare
class-string) *or* the contents of the configuration array that
would be returned by ExtensionModule::getConfig(), in which case it
creates an anonymous ExtensionModule object for you.  It's expected
that the latter will be preferred in extension.json, but we use the
former for our internal extension implementations at the moment.

Finally, call SiteConfig::registerExtensionModule() on the results
of ExtensionRegistery::getInstance()->getAttribute('ParsoidModules')
when running in integrated mode.  This allows you to register your
extension with a clause such as the following in your extension.json:

(simple case, naming a class which implements ExtensionModule)
{
  "name": "JsonExtension",
  "manifest_version": 2,
  ...
  "ParsoidModules": [ "Wikimedia\\Parsoid\\Ext\\JSON" ]
}

(complex case, putting the configuration array into extension.json)
{
  "name": "Cite",
  "manifest_version": 2,
  ...
  "ParsoidModules": [
    {
      "name": "Cite",
      "domProcessors": [
	"Wikimedia\\Parsoid\\Ext\\Cite\\RefProcessor",
      ],
      "tags": [
	{
	  "name": "ref",
	  "handler": "Wikimedia\\Parsoid\\Ext\\Cite\\Ref",
	  "options": {
	    "wt2html": { "sealFragment": true }
	  },
	},
	{
	  "name": "references",
	  "handler": "Wikimedia\\Parsoid\\Ext\\Cite\\References",
	  "options": {
	    "html2wt": { "format": "block" }
	  },
	}
      ],
      "styles": [
	"ext.cite.style",
	"ext.cite.styles"
      ]
    }
  ]
}

The syntax above, with `ParsoidModules` as a top-level attribute, requires
I6c74938883376ec17f3790678b435585083a440f in core.  However, with or without
that patch, the following also works:
{
  ...
  "attributes": {
    "Parsoid": {
      "Modules": [ ... ]
    }
  }
}

Bug: T133320
Change-Id: I20f641a1ff032a6da3549b01dfaf8f4cf1eb5071
2020-05-29 12:18:36 -04:00
libraryupgrader c68575b73b build: Updating mediawiki/mediawiki-codesniffer to 31.0.0
Additional changes:
* Replaced "jakub-onderka" packages with "php-parallel-lint".

Change-Id: I62affe86473b9911f925c0f4147a0369ac00d221
2020-05-29 09:50:02 +00:00
Translation updater bot 9371bede25 Localisation updates from https://translatewiki.net.
Change-Id: Id36226ae038408de202d669ba2aaff6c9e83fdae
2020-05-29 08:31:56 +02:00