jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/367476 )
Change subject: config: Add more EtcdConfig::fetchAllFromEtcdServer tests ...................................................................... config: Add more EtcdConfig::fetchAllFromEtcdServer tests Bug: T156924 Change-Id: I88a1c97b6921b59cce93f22d473dd7cea6f4931c --- M tests/phpunit/includes/config/EtcdConfigTest.php 1 file changed, 109 insertions(+), 1 deletion(-) Approvals: Aaron Schulz: Looks good to me, approved jenkins-bot: Verified diff --git a/tests/phpunit/includes/config/EtcdConfigTest.php b/tests/phpunit/includes/config/EtcdConfigTest.php index e0694db..19cffa2 100644 --- a/tests/phpunit/includes/config/EtcdConfigTest.php +++ b/tests/phpunit/includes/config/EtcdConfigTest.php @@ -364,7 +364,86 @@ public static function provideFetchFromServer() { return [ - '200 OK - Empty' => [ + '200 OK - Success' => [ + 'http' => [ + 'code' => 200, + 'reason' => 'OK', + 'headers' => [], + 'body' => json_encode( [ 'node' => [ 'nodes' => [ + [ + 'key' => '/example/foo', + 'value' => json_encode( [ 'val' => true ] ) + ], + ] ] ] ), + 'error' => '', + ], + 'expect' => [ + [ 'foo' => true ], // data + null, + false // retry + ], + ], + '200 OK - Skip dir' => [ + 'http' => [ + 'code' => 200, + 'reason' => 'OK', + 'headers' => [], + 'body' => json_encode( [ 'node' => [ 'nodes' => [ + [ + 'key' => '/example/foo', + 'value' => json_encode( [ 'val' => true ] ) + ], + [ + 'key' => '/example/sub', + 'dir' => true + ], + [ + 'key' => '/example/bar', + 'value' => json_encode( [ 'val' => false ] ) + ], + ] ] ] ), + 'error' => '', + ], + 'expect' => [ + [ 'foo' => true, 'bar' => false ], // data + null, + false // retry + ], + ], + '200 OK - Bad value' => [ + 'http' => [ + 'code' => 200, + 'reason' => 'OK', + 'headers' => [], + 'body' => json_encode( [ 'node' => [ 'nodes' => [ + [ + 'key' => '/example/foo', + 'value' => ';"broken{value' + ] + ] ] ] ), + 'error' => '', + ], + 'expect' => [ + null, // data + "Failed to parse value for 'foo'.", + false // retry + ], + ], + '200 OK - Empty node list' => [ + 'http' => [ + 'code' => 200, + 'reason' => 'OK', + 'headers' => [], + 'body' => '{"node":{"nodes":[]}}', + 'error' => '', + ], + 'expect' => [ + [], // data + null, + false // retry + ], + ], + '200 OK - Invalid JSON' => [ 'http' => [ 'code' => 200, 'reason' => 'OK', @@ -378,11 +457,40 @@ false // retry ], ], + '404 Not Found' => [ + 'http' => [ + 'code' => 404, + 'reason' => 'Not Found', + 'headers' => [ 'content-length' => 0 ], + 'body' => '', + 'error' => '', + ], + 'expect' => [ + null, // data + 'HTTP 404 (Not Found)', + false // retry + ], + ], + '400 Bad Request - custom error' => [ + 'http' => [ + 'code' => 400, + 'reason' => 'Bad Request', + 'headers' => [ 'content-length' => 0 ], + 'body' => '', + 'error' => 'No good reason', + ], + 'expect' => [ + null, // data + 'No good reason', + true // retry + ], + ], ]; } /** * @covers EtcdConfig::fetchAllFromEtcdServer + * @covers EtcdConfig::unserialize * @dataProvider provideFetchFromServer */ public function testFetchFromServer( array $httpResponse, array $expected ) { -- To view, visit https://gerrit.wikimedia.org/r/367476 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I88a1c97b6921b59cce93f22d473dd7cea6f4931c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Aaron Schulz <asch...@wikimedia.org> Gerrit-Reviewer: Anomie <bjor...@wikimedia.org> Gerrit-Reviewer: Tim Starling <tstarl...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits