Commit graph

6 commits

Author SHA1 Message Date
Robert Timm
7026c5cd0b WebRequest: detectServer appends default ports that should be omitted
In MediaWiki 1.41.0 the function WebRequest::detectServer() started to generate server URL strings containing default ports such as 80
for http and 443 for https.

Before 1.41.0: https://my.wiki
After  1.41.0: https://my.wiki:443

detectServer() uses IPUtils::combineHostAndPort() to build the URL. The
latter function has actually a mechanism built in that intends to omit
standard ports, so the new behavior in MW 1.41.0 seems unintended.

As this broke WDQS over here in our Wikibase Suite bundle, I
investigated the cause.

MediaWiki 1.41.0 updates IPUtils from 4 to 5. With this update, there
was a change that compares the port now via === instead of ==.
(e68cf6a14e%5E%21/#F1
Line 383) The new behavior is correct, as the function expects an int.
MediaWiki passes in a string though. This bug was hidden with IPUtils 4,
but is triggered now in IPUtils 5.

I think this should be backported to REL1_41.

Change-Id: Ib707ee72e02cf99225168d268d5fedab3f548ead
Bug: T360608
2024-03-28 11:03:28 +00:00
jenkins-bot
bf22917ed1 Merge "entrypoint: Isolate entry points from PHP runtime for testing" 2024-02-02 19:59:11 +00:00
daniel
24d0aee05e entrypoint: Isolate entry points from PHP runtime for testing
1) Introduce EntryPointEnvironment which wraps functions that interact
with the PHP runtime, so they can be mocked for testing.

2) Allow server info fields to be overwritten in FauxRequest.

3) Make MediaWikiEntryPoint use WebResponse to set headers

Bug: T354216
Change-Id: Ic21950c956de5d2b5a7dd66a1e2de58f807cfd9f
2024-02-02 13:03:29 +01:00
Umherirrender
a3a9cf99cb tests: Use namespaced class names in @covers annotations
Assist from 8c9cb701e56226cac43fee2fa24b0d0e586f1733

Change-Id: I47897c499028d9e24c00ad0bc6ba7fd8002d9bc1
2024-01-27 01:11:07 +01:00
Máté Szabó
ddbd5735a0 WebRequest: Fix PHP 8.1 deprecations in getFuzzyBool()
WebRequest::getFuzzyBool() will emit a deprecation warning on PHP 8.1 or
newer if the parameter to be fetched is absent and the $default value is
set to `true`, because strcasecmp() no longer accepts nulls. Fix it by
returning out if the parameter is wholly absent and add a test for this
scenario.

Bug: T351088
Change-Id: I85bbfec6aabef4e85859a76b6e50c80781024ae5
2023-11-13 15:35:55 +01:00
Umherirrender
790ae736c1 tests: Move test cases from /includes/ into sub folder
Follow move of the tested class
Most moves are part of T321882

Change-Id: I74ab45d6a5331dcb2ff0b65dc2cc7c6315146646
2023-09-13 00:09:05 +02:00
Renamed from tests/phpunit/includes/WebRequestTest.php (Browse further)