Commit graph

512 commits

Author SHA1 Message Date
Umherirrender eef833a112 Use namespaced classes
Changes to the use statements done automatically via script

Change-Id: Ife9826099657bcaeca1beec94863a1600fdf55f8
2024-10-19 23:39:18 +02:00
Derick Alangi c296917ffa
tests: Fix content data for "hu" language code
After I6d82a827e20d18ff4d78d7351aa9e9c08129e400 landed, it caused
DiscussionTools to break in CI, this patch fixes it to use the correct
language code per the patch above.

If this patch passes CI, then the issue is resolved potentially.

Bug: T376020
Change-Id: I5324e5690d25f295d3fc1fb91d8f0f24adcc35e8
2024-09-30 11:11:43 +01:00
jenkins-bot f57ee98ee8 Merge "Revert "Invert logic on empty talk page"" 2024-08-22 18:29:00 +00:00
DLynch f96eba7e6e Revert "Invert logic on empty talk page"
This reverts commit 7e5f9b59a2.

Reason for revert: Causes empty state to always appear on wikis using Talkpageheader

Bug: T373100
Change-Id: I23a3f937201d93c7c7645a09c4fccfcf1c14008a
2024-08-22 17:48:33 +00:00
jenkins-bot 2a6100b294 Merge "Invert logic on empty talk page" 2024-08-15 20:56:39 +00:00
Arlo Breault 7e5f9b59a2 Invert logic on empty talk page
Record if a talk page is not empty, rather than empty.

This helps prevent Parsoid from mislabelling pages as empty when they
contain extension tags it needs to call out to the legacy parser to
process.  Metadata from the legacy parse is merged into the overall
metadata for the page.

For example, a templatestyles extension tag parsed in the context of a
talk page would set the empty state which would then fail to cleared if
the overall parse of the page wasn't empty.

Bartosz (@matmarex) proposed this idea in T371125#10053043

Setting and using these flags all appear to be post-retrieval from
cache.

Alternative to I1deb679ef0e19dc3a36e377c183dd1b4ab0003e9

Bug: T371125
Change-Id: I5c1877f7f9eb73f88a33e001ca3c2f3d06bb90e4
2024-08-14 18:26:25 -04:00
Arlo Breault 69fd71b260 Parsoid's templated content have other attrs as well
Bug: T372019
Change-Id: Ic1d32570f5fed4d48a126d0ef4c8c04a82d7bbb4
2024-08-14 17:30:31 -04:00
Bartosz Dziewoński eddf9bd997 tests: Normalize timestamp values returned by different database engines
Bug: T370671
Change-Id: Icfccbe7543e1bbcf6447a05c23c0dbfeac3df649
2024-07-22 20:21:50 +02:00
jenkins-bot d51585e02f Merge "Stop using setMwGlobals in tests" 2024-07-09 15:16:08 +00:00
jenkins-bot 80d1e3aa65 Merge "Use MainConfigNames constants in tests where possible" 2024-07-09 15:16:07 +00:00
thiemowmde 13d3a218b0 Use MainConfigNames constants in tests where possible
I believe this makes the code less brittle, and also makes it a bit
more obvious what these strings are meant to represent.

Change-Id: I01adaff0ed75f792d1130bbc75e7840b3d044c54
2024-07-09 14:16:24 +00:00
thiemowmde 6af3876b86 Stop using setMwGlobals in tests
In favor of the more recent, less error prone overrideConfigValue(s).

Change-Id: Ie3aa275f5d670c19d3f69467ed0b9383405f1440
2024-07-09 12:40:34 +02:00
Wandji69 43d023a2be Test: Replace db with getDb method
Bug: T316841
Change-Id: Iaf32040979522f311289b4c2f5723cae9079e662
2024-07-05 16:49:58 +01:00
Fomafix 32069364ff Use $this->getServiceContainer() in maintenance and tests
Use
	$this->getServiceContainer()
instead of
	MediaWikiServices::getInstance()
in maintenance and tests.

Change-Id: I4066d7b2029296f1edb164acc5f8c812ccfba808
2024-07-03 08:44:55 +00:00
jenkins-bot 5b415eb241 Merge "Reduce unused mocks in CommentFormatterTest" 2024-06-24 16:07:28 +00:00
thiemowmde 15a9304bc5 Reduce unused mocks in CommentFormatterTest
For example, in case nothing is ever called it's sometimes helpful to
use "NoOp" mocks to make this more visible.

There is also no actual OutputPage needed, just the much more narrow
interface.

Change-Id: I44522276726786abd75c85c02a7003c33a5602bb
2024-06-23 13:56:34 +00:00
jenkins-bot 7281eec5b2 Merge "Improve unwrapFragment() for multi-paragraph comments" 2024-06-22 09:48:56 +00:00
Bartosz Dziewoński 674353691b Improve unwrapFragment() for multi-paragraph comments
I've been reading some discussions in Special:DiscussionToolsDebug
and saw a good number of comments where the first paragraph has
a bullet point (`*`), and the following paragraphs are indented (`:`).

Change-Id: I1afadc49565e843c97286a3744941ffb4062ddec
2024-06-21 22:37:09 +02:00
jenkins-bot c11460a527 Merge "Fix parsing usernames with +" 2024-06-21 15:19:33 +00:00
jenkins-bot fb4d4d77a5 Merge "Trim whitespace from truncated heading titles in IDs" 2024-06-20 02:20:23 +00:00
Bartosz Dziewoński 20ff1a519f Fix parsing usernames with +
urldecode() should be used for decoding URL query parameters,
rawurldecode() should be used for decoding URL paths.

Bug: T367977
Change-Id: I7a7b14da85fb89f612c701d2746803d830017842
2024-06-19 17:14:10 +02:00
Ed Sanders 6d572a8733 ESLint: Use sourceType:commonjs instead of no-implicit-globals:off
Change-Id: I409d24d7253bd2108d34fc5ec69f042f588b0b07
2024-06-14 12:32:25 +01:00
Umherirrender 3dc5e88842 Use namespaced classes
Changes to the use statements done automatically via script
Addition of missing use statement done manually

Change-Id: I492ddae3c3e9f81d551ea8b348b7148893f4f590
2024-06-09 00:02:35 +02:00
Ed Sanders dda9227947 ESLint: Manually fix remaining no-var violations
Change-Id: I4474bd0205e7a1ed8e60147e52675e3e0b93ccd9
2024-05-24 16:50:11 +01:00
Ed Sanders ca5157156a ESLint: Autofix no-var rule
Leave rule off for now as manual fixes are required.

Also temporarily disable prefer-const rule as that
will also require some manual fixes.

Change-Id: I8c3478f26f51287acb943bd38c9c1020c06b9f39
2024-05-24 16:49:36 +01:00
Ed Sanders 1e0aa2171f Replace $.extend with Object.assign
Change-Id: Id559ab68451a1d767e92ed17b1ef0832a5f243af
2024-05-02 16:49:43 +01:00
Ed Sanders 501046f38c Trim whitespace from truncated heading titles in IDs
Bug: T356196
Change-Id: Iddcda0cee624fda7f78a05e0a3d70eaee2635da9
2024-05-01 14:20:12 +01:00
jenkins-bot 3c4b5364f2 Merge "Prefer short arrow functions" 2024-04-30 16:57:37 +00:00
Bartosz Dziewoński 67bad433dc Fix signature check not to look at the content of previous section
It needs to only look at the end of the added comments, and ignore
whatever is going on at the beginning, since the only thing it really
cares about is a functioning "Reply" button at the end.

Bug: T363285
Change-Id: Ia337be754deda741617d1343972f3e0a21c41b05
2024-04-25 23:15:18 +02:00
Bartosz Dziewoński 5def2227a2 Add more test cases for isSingleCommentSignedBy()
Inspired by the discussion at T363285, document some more intended
behaviors from 0ecc8a4c05.

Change-Id: Id190318a98563f4064c20477bc17e929dd59d74a
2024-04-25 22:09:40 +02:00
Bartosz Dziewoński d4c5aebd8f Prefer short arrow functions
When an arrow function body contains just a single `return` statement,
the braces can be omitted.

(Changes are mostly made by `grunt eslint --fix`, with only some line
breaks added by hand.)

Change-Id: I37f259f87085c8d20ed09cfa58a8456dd36cdc38
2024-04-20 00:08:51 +02:00
Ed Sanders a74c00ba8c Prefer arrow functions for callbacks
This allows us to remove our `this` bindings.

Change-Id: Ie8c8c38d36af8a033b5181870c39f8981a57b939
2024-04-19 12:34:23 +01:00
James D. Forrester 30d911b649 Replace wfGetDB() in test with $this->getDb()
Not spotted in code search due to wrong case, which PHP forgives.
Whoops.

Bug: T360991
Depends-On: I73e4d3ab3158659b6a3c0a942f6bef10820b4248
Change-Id: I2d1cfd0f05c962f2d62dde911e4b0eed1ca02d83
2024-03-26 12:01:16 +00:00
jenkins-bot f22dabfb80 Merge "Move some doc comments to real type hints" 2024-03-23 01:36:33 +00:00
jenkins-bot bd09ad6801 Merge "Move [subscribe] links outside of <h2> tags" 2024-03-11 17:07:14 +00:00
Bartosz Dziewoński d2d2d914ce Move some doc comments to real type hints
Change-Id: I64e3f7123c803ae2576c8b05824698d78a691018
2024-03-11 14:13:17 +01:00
Bartosz Dziewoński 69e8e948b2 Remove now redundant PHPDoc blocks
MediaWiki's PHPCS plugin requires documentation comments on all
methods, unless those methods are fully typed (all parameters and
return value).

It turns out that almost all of our methods are fully typed already.

Procedure:

1. Find: \*(\s*\*\s*(@param \??[\w\\]+(\|null)? &?\$\w+|@return \??[\w\\]+(\|null)?)\n)+\s*\*/
   Replace with: */
   This deletes type annotations, except those not representable
   as PHP type hints such as union types `a|b` or typed arrays `a[]`,
   or those with documentation beyond type hints, or those on
   functions with any other annotations.

2. Find: /\*\*/\n\s*
   Replace with nothing
   This deletes the remaining comments on methods that had no prose
   documentation.

3. Undo all changes that PHPCS complains about (those comments
   were not redundant)

4. Review the diff carefully, these regexps are imprecise :)

Change-Id: Ic82e8b23f2996f44951208dbd9cfb4c8e0738dac
2024-03-10 23:53:04 +00:00
Bartosz Dziewoński 9c9512ecf5 Move [subscribe] links outside of <h2> tags
Place the "[subscribe]" links used when the 'VISUALENHANCEMENTS'
feature is disabled in the same DOM position as the "🔔 Subscribe"
buttons used when it is enabled.

Recent changes in MediaWiki core caused them to move inside the
`<span class="mw-headline">`, breaking some gadgets (T13555#9615648).
Moving them all the way outside should avoid problems.

I don't remember why we placed them inside the `<h2>` tags, but there
doesn't seem to be any reason to do it now. It must have been easier
that way before we introduced the `<div class="mw-heading">` wrappers.

Note that I'm keeping the `<!--__DTSUBSCRIBELINK__...-->` placeholder
comments in case it turns out there is a reason, and we need to revert
this change. If everything goes well, they can be cleaned up in change
Ie3348671c486de5bbd9f286772a8d145e3609bd5 later.

Bug: T13555
Change-Id: Idb23b0f5e438d35ed74569ff50302c7fad5ba688
2024-03-08 21:18:53 +01:00
Bartosz Dziewoński 4958416caf Only include one set of DiscussionTools buttons in the page HTML
We no longer need to support toggling visual enhancements without
reloading the page, so we can remove the extraneous set of buttons
to reduce HTML size.

Bug: T322457
Change-Id: I54e57c754c54b7e611069f9832d1ebabf141a396
2024-03-01 16:51:17 +00:00
Bartosz Dziewoński 6419c19d1e Fix PHP getTitleFromUrl() when $wgArticlePath is '/$1'
In this case, the generated regexp would match the '/local' part in
the generated URL. Prefixing 'https://local' is no longer necessary
since 10899af666.

Add tests for this, and some tests to cover T261711 as well.

Bug: T358321
Change-Id: Idf54deba13f30b799b7b8d17de1897bc90f95701
2024-02-24 02:03:17 +01:00
Bartosz Dziewoński cf9f11167d CommentFormatterTest: Set ArticlePath in the test
Tests would fail if your wiki's config was different than this.

Change-Id: I148851a9d7b777f1fad5f17b01b835b0b9384a80
2024-02-24 01:19:16 +01:00
jenkins-bot 402f5de391 Merge "Support for core section heading formatting in post-cache transform" 2024-02-23 05:01:19 +00:00
jenkins-bot c12427f150 Merge "tests: Rebuild expected 'timestamplink' output" 2024-02-17 03:20:19 +00:00
Bartosz Dziewoński 08f61b2609 Support for core section heading formatting in post-cache transform
We already supported plain headings without the 'mw-headline'
wrappers, but now we need to parse the 'id' from a different
attribute.

Needed-By: If04d72f427ec3c3730e757cbb3ade8840c09f7d3
Bug: T357723
Change-Id: If85f89c40834618f23dc0ace2e599efb3b6d5ed4
2024-02-16 20:28:53 +00:00
Bartosz Dziewoński 7bee77d5fd Remove unused '*-formattedreply.html' test files
They were renamed in 9c68e058ef, but
b82af45735 accidentally added them back.

Change-Id: Ic0eaa09492d637f4dc54904856621ee1eb930a58
2024-02-16 19:28:05 +01:00
Bartosz Dziewoński 37257d68cf tests: Rebuild expected 'timestamplink' output
When rebuilding expected outputs by running the tests with
'DISCUSSIONTOOLS_OVERWRITE_TESTS=1', our code outputs the
JSON keys in a specific order (not alphabetical).

Change-Id: Ice57948ef1d4b780ae18cfcbb2e7373f518c8abc
2024-02-16 19:27:55 +01:00
Ed Sanders 9590a7297d CommentParser: Add test case for already-linked timestamp
Follow-up to 8069585489.

Bug: T356142
Change-Id: Iae9e165f00cc8bfedeb057f113e1c8c5ba7e3bf1
2024-02-12 20:33:06 +00:00
Bartosz Dziewoński f4090865d4 Add test cases for the main loop getting stuck on some signatures
Follow-up to 9db35873a4.

Bug: T356884
Change-Id: Ifef490209fdee2b9f52d3ef81a92ea20c5ff2155
2024-02-08 16:59:01 +01:00
Bartosz Dziewoński 0f6bdcf9cb Add first basic tests for ThreadItemStore::find*() methods
Just covering the basic scenarios of having comments on the page and
archiving them.

Bug: T356575
Change-Id: I9022b0a7cf3b02bd9f2f2d5605823eec21b92642
2024-02-03 23:14:08 +01:00
Umherirrender 94a5c86ceb Stop writing to tablesUsed in tests
Bug: T351733
Change-Id: I4e8feb7f60b45bb7fe5259d72ee29d964caefdfd
2024-01-20 12:27:39 +01:00