MediaWiki REL1_33
ApiFormatRawTest.php
Go to the documentation of this file.
1<?php
2
8
9 protected $printerName = 'raw';
10
15 public static function provideGeneralEncoding() {
16 $options = [
17 'class' => ApiFormatRaw::class,
18 'factory' => function ( ApiMain $main ) {
19 return new ApiFormatRaw( $main, new ApiFormatJson( $main, 'json' ) );
20 }
21 ];
22
23 return [
24 [
25 [ 'mime' => 'text/plain', 'text' => 'foo' ],
26 'foo',
27 [],
29 ],
30 [
31 [ 'mime' => 'text/plain', 'text' => 'fóo' ],
32 'fóo',
33 [],
35 ],
36 [
37 [ 'text' => 'some text' ],
38 new MWException( 'No MIME type set for raw formatter' ),
39 [],
41 ],
42 [
43 [ 'mime' => 'text/plain' ],
44 new MWException( 'No text given for raw formatter' ),
45 [],
47 ],
48 'test error fallback' => [
49 [ 'mime' => 'text/plain', 'text' => 'some text', 'error' => 'some error' ],
50 '{"mime":"text/plain","text":"some text","error":"some error"}',
51 [],
53 ]
54 ];
55 }
56
60 public function testFilename() {
61 $printer = new ApiFormatRaw( new ApiMain );
62 $printer->getResult()->addValue( null, 'filename', 'whatever.raw' );
63 $this->assertSame( 'whatever.raw', $printer->getFilename() );
64 }
65
69 public function testErrorFallbackFilename() {
70 $apiMain = new ApiMain;
71 $printer = new ApiFormatRaw( $apiMain, new ApiFormatJson( $apiMain, 'json' ) );
72 $printer->getResult()->addValue( null, 'error', 'some error' );
73 $printer->getResult()->addValue( null, 'filename', 'whatever.raw' );
74 $this->assertSame( 'api-result.json', $printer->getFilename() );
75 }
76
80 public function testMime() {
81 $printer = new ApiFormatRaw( new ApiMain );
82 $printer->getResult()->addValue( null, 'mime', 'text/plain' );
83 $this->assertSame( 'text/plain', $printer->getMimeType() );
84 }
85
89 public function testErrorFallbackMime() {
90 $apiMain = new ApiMain;
91 $printer = new ApiFormatRaw( $apiMain, new ApiFormatJson( $apiMain, 'json' ) );
92 $printer->getResult()->addValue( null, 'error', 'some error' );
93 $printer->getResult()->addValue( null, 'mime', 'text/plain' );
94 $this->assertSame( 'application/json', $printer->getMimeType() );
95 }
96
100 public function testFailWithHTTPError() {
101 $apiMain = null;
102
103 $this->testGeneralEncoding(
104 [ 'mime' => 'text/plain', 'text' => 'some text', 'error' => 'some error' ],
105 '{"mime":"text/plain","text":"some text","error":"some error"}',
106 [],
107 [
108 'class' => ApiFormatRaw::class,
109 'factory' => function ( ApiMain $main ) use ( &$apiMain ) {
110 $apiMain = $main;
111 $printer = new ApiFormatRaw( $main, new ApiFormatJson( $main, 'json' ) );
112 $printer->setFailWithHTTPError( true );
113 return $printer;
114 }
115 ]
116 );
117 $this->assertEquals( 400, $apiMain->getRequest()->response()->getStatusCode() );
118 }
119
120}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
API JSON output formatter.
API ApiFormatRaw.
testFailWithHTTPError()
Check that setting failWithHTTPError to true will result in 400 response status code.
testErrorFallbackFilename()
Test specifying filename with error fallback printer.
static provideGeneralEncoding()
Test basic encoding and missing mime and text exceptions.
testFilename()
Test specifying filename.
testMime()
Test specifying mime.
testErrorFallbackMime()
Test specifying mime with error fallback printer.
Formatter that spits out anything you like with any desired MIME type.
testGeneralEncoding(array $data, $expect, array $params=[], array $options=[])
provideGeneralEncoding
This is the main API class, used for both external and internal processing.
Definition ApiMain.php:41
MediaWiki exception.
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition hooks.txt:1999