Best Atoum code snippet using extension.accept
FileBlueprintTest.php
Source:FileBlueprintTest.php
...91 'parent' => $page92 ]);93 // string = MIME types94 $blueprint = new FileBlueprint([95 'accept' => 'image/jpeg, text/*',96 'model' => $file97 ]);98 $this->assertSame([99 'extension' => null,100 'mime' => ['image/jpeg', 'text/*'],101 'maxheight' => null,102 'maxsize' => null,103 'maxwidth' => null,104 'minheight' => null,105 'minsize' => null,106 'minwidth' => null,107 'orientation' => null,108 'type' => null109 ], $blueprint->accept());110 // empty value = no restrictions111 $expected = [112 'extension' => null,113 'mime' => null,114 'maxheight' => null,115 'maxsize' => null,116 'maxwidth' => null,117 'minheight' => null,118 'minsize' => null,119 'minwidth' => null,120 'orientation' => null,121 'type' => null122 ];123 $blueprint = new FileBlueprint([124 'accept' => true,125 'model' => $file126 ]);127 $this->assertSame($expected, $blueprint->accept());128 $blueprint = new FileBlueprint([129 'accept' => [130 'mime' => null131 ],132 'model' => $file133 ]);134 $this->assertSame($expected, $blueprint->accept());135 $blueprint = new FileBlueprint([136 'accept' => [137 'extension' => null138 ],139 'model' => $file140 ]);141 $this->assertSame($expected, $blueprint->accept());142 $blueprint = new FileBlueprint([143 'accept' => [144 'type' => null145 ],146 'model' => $file147 ]);148 $this->assertSame($expected, $blueprint->accept());149 $blueprint = new FileBlueprint([150 'accept' => [151 'mime' => null,152 'type' => null153 ],154 'model' => $file155 ]);156 $this->assertSame($expected, $blueprint->accept());157 // no value = default type restriction158 $expected = [159 'extension' => null,160 'mime' => null,161 'maxheight' => null,162 'maxsize' => null,163 'maxwidth' => null,164 'minheight' => null,165 'minsize' => null,166 'minwidth' => null,167 'orientation' => null,168 'type' => ['image', 'document', 'archive', 'audio', 'video']169 ];170 $blueprint = new FileBlueprint([171 'model' => $file172 ]);173 $this->assertSame($expected, $blueprint->accept());174 $blueprint = new FileBlueprint([175 'accept' => null,176 'model' => $file177 ]);178 $this->assertSame($expected, $blueprint->accept());179 $blueprint = new FileBlueprint([180 'accept' => [],181 'model' => $file182 ]);183 $this->assertSame($expected, $blueprint->accept());184 // array with mixed case185 $blueprint = new FileBlueprint([186 'accept' => [187 'extensION' => ['txt'],188 'MiMe' => ['image/jpeg', 'text/*'],189 'MAXsize' => 100,190 'typE' => ['document']191 ],192 'model' => $file193 ]);194 $this->assertSame([195 'extension' => ['txt'],196 'mime' => ['image/jpeg', 'text/*'],197 'maxheight' => null,198 'maxsize' => 100,199 'maxwidth' => null,200 'minheight' => null,201 'minsize' => null,202 'minwidth' => null,203 'orientation' => null,204 'type' => ['document']205 ], $blueprint->accept());206 // MIME, extension and type normalization207 $blueprint = new FileBlueprint([208 'accept' => [209 'mime' => 'image/jpeg, image/png;q=0.7',210 'extension' => 'txt,json , jpg',211 'type' => 'document;audio , video'212 ],213 'model' => $file214 ]);215 $this->assertSame([216 'extension' => ['txt', 'json', 'jpg'],217 'mime' => ['image/jpeg', 'image/png'],218 'maxheight' => null,219 'maxsize' => null,220 'maxwidth' => null,221 'minheight' => null,222 'minsize' => null,223 'minwidth' => null,224 'orientation' => null,225 'type' => ['document;audio', 'video']226 ], $blueprint->accept());227 }228 public function testAcceptMime()229 {230 $page = new Page([231 'slug' => 'test'232 ]);233 $file = new File([234 'filename' => 'test.jpg',235 'parent' => $page236 ]);237 // default restrictions238 $blueprint = new FileBlueprint([239 'model' => $file240 ]);241 $this->assertSame('*', $blueprint->acceptMime());242 // no restrictions243 $blueprint = new FileBlueprint([244 'accept' => true,245 'model' => $file246 ]);247 $this->assertSame('*', $blueprint->acceptMime());248 // just MIME restrictions249 $blueprint = new FileBlueprint([250 'accept' => 'image/jpeg, image/png;q=0.7',251 'model' => $file252 ]);253 $this->assertSame('image/jpeg, image/png', $blueprint->acceptMime());254 // just extension restrictions255 $blueprint = new FileBlueprint([256 'accept' => [257 'extension' => 'jpg, mp4'258 ],259 'model' => $file260 ]);261 $this->assertSame('image/jpeg, video/mp4', $blueprint->acceptMime());262 // just type restrictions263 $blueprint = new FileBlueprint([264 'accept' => [265 'type' => 'archive, audio'266 ],267 'model' => $file268 ]);269 $this->assertSame(270 'application/x-gzip, application/x-tar, application/x-zip, ' .271 'audio/x-aiff, audio/mp4, audio/midi, audio/mpeg, audio/x-wav',272 $blueprint->acceptMime()273 );274 // combined extension and type restrictions275 $blueprint = new FileBlueprint([276 'accept' => [277 'extension' => 'jpg, txt, png',278 'type' => 'image, audio'279 ],280 'model' => $file281 ]);282 $this->assertSame('image/jpeg, image/png', $blueprint->acceptMime());283 // don't override explicit MIME types with other restrictions284 $blueprint = new FileBlueprint([285 'accept' => [286 'mime' => 'image/jpeg, application/pdf;q=0.7',287 'extension' => 'jpg, txt, png',288 'type' => 'document, image'289 ],290 'model' => $file291 ]);292 $this->assertSame('image/jpeg, application/pdf', $blueprint->acceptMime());293 }294 public function testExtendAccept()295 {296 new App([297 'roots' => [298 'index' => '/dev/null'299 ],300 'blueprints' => [301 'files/base' => [302 'name' => 'base',303 'title' => 'Base',304 'accept' => [305 'mime' => 'image/jpeg'306 ]307 ],308 'files/image' => [309 'name' => 'image',310 'title' => 'Image',311 'extends' => 'files/base'312 ]313 ]314 ]);315 $page = new Page([316 'slug' => 'test'317 ]);318 $file = new File([319 'filename' => 'test.jpg',320 'parent' => $page,321 'template' => 'image',322 ]);323 $blueprint = $file->blueprint();324 $this->assertEquals(['image/jpeg'], $blueprint->accept()['mime']);325 }326}...
FileBlueprint.php
Source:FileBlueprint.php
...14 */15class FileBlueprint extends Blueprint16{17 /**18 * `true` if the default accepted19 * types are being used20 *21 * @var bool22 */23 protected $defaultTypes = false;24 public function __construct(array $props)25 {26 parent::__construct($props);27 // normalize all available page options28 $this->props['options'] = $this->normalizeOptions(29 $this->props['options'] ?? true,30 // defaults31 [32 'changeName' => null,33 'create' => null,34 'delete' => null,35 'read' => null,36 'replace' => null,37 'update' => null,38 ]39 );40 // normalize the accept settings41 $this->props['accept'] = $this->normalizeAccept($this->props['accept'] ?? []);42 }43 /**44 * @return array45 */46 public function accept(): array47 {48 return $this->props['accept'];49 }50 /**51 * Returns the list of all accepted MIME types for52 * file upload or `*` if all MIME types are allowed53 *54 * @return string55 */56 public function acceptMime(): string57 {58 // don't disclose the specific default types59 if ($this->defaultTypes === true) {60 return '*';61 }62 $accept = $this->accept();63 $restrictions = [];64 if (is_array($accept['mime']) === true) {65 $restrictions[] = $accept['mime'];66 } else {67 // only fall back to the extension or type if68 // no explicit MIME types were defined69 // (allows to set custom MIME types for the frontend70 // check but still restrict the extension and/or type)71 if (is_array($accept['extension']) === true) {72 // determine the main MIME type for each extension73 $restrictions[] = array_map(['Kirby\Filesystem\Mime', 'fromExtension'], $accept['extension']);74 }75 if (is_array($accept['type']) === true) {76 // determine the MIME types of each file type77 $mimes = [];78 foreach ($accept['type'] as $type) {79 if ($extensions = F::typeToExtensions($type)) {80 $mimes[] = array_map(['Kirby\Filesystem\Mime', 'fromExtension'], $extensions);81 }82 }83 $restrictions[] = array_merge(...$mimes);84 }85 }86 if ($restrictions !== []) {87 if (count($restrictions) > 1) {88 // only return the MIME types that are allowed by all restrictions89 $mimes = array_intersect(...$restrictions);90 } else {91 $mimes = $restrictions[0];92 }93 // filter out empty MIME types and duplicates94 return implode(', ', array_filter(array_unique($mimes)));95 }96 // no restrictions, accept everything97 return '*';98 }99 /**100 * @param mixed $accept101 * @return array102 */103 protected function normalizeAccept($accept = null): array104 {105 if (is_string($accept) === true) {106 $accept = [107 'mime' => $accept108 ];109 } elseif ($accept === true) {110 // explicitly no restrictions at all111 $accept = [112 'mime' => null113 ];114 } elseif (empty($accept) === true) {115 // no custom restrictions116 $accept = [];117 }118 $accept = array_change_key_case($accept);119 $defaults = [120 'extension' => null,121 'mime' => null,122 'maxheight' => null,123 'maxsize' => null,124 'maxwidth' => null,125 'minheight' => null,126 'minsize' => null,127 'minwidth' => null,128 'orientation' => null,129 'type' => null130 ];131 // default type restriction if none are configured;132 // this ensures that no unexpected files are uploaded133 if (134 array_key_exists('mime', $accept) === false &&135 array_key_exists('extension', $accept) === false &&136 array_key_exists('type', $accept) === false137 ) {138 $defaults['type'] = ['image', 'document', 'archive', 'audio', 'video'];139 $this->defaultTypes = true;140 }141 $accept = array_merge($defaults, $accept);142 // normalize the MIME, extension and type from strings into arrays143 if (is_string($accept['mime']) === true) {144 $accept['mime'] = array_map(145 fn ($mime) => $mime['value'],146 Str::accepted($accept['mime'])147 );148 }149 if (is_string($accept['extension']) === true) {150 $accept['extension'] = array_map(151 'trim',152 explode(',', $accept['extension'])153 );154 }155 if (is_string($accept['type']) === true) {156 $accept['type'] = array_map(157 'trim',158 explode(',', $accept['type'])159 );160 }161 return $accept;162 }163}...
accept
Using AI Code Generation
1$ext = new Extension();2$ext->accept();3$ext = new Extension();4$ext->accept();5$ext = new Extension();6$ext->accept();7$ext = new Extension();8$ext->accept();9$ext = new Extension();10$ext->accept();11$ext = new Extension();12$ext->accept();13$ext = new Extension();14$ext->accept();15$ext = new Extension();16$ext->accept();17$ext = new Extension();18$ext->accept();19$ext = new Extension();20$ext->accept();21$ext = new Extension();22$ext->accept();23$ext = new Extension();24$ext->accept();25$ext = new Extension();26$ext->accept();27$ext = new Extension();28$ext->accept();29$ext = new Extension();30$ext->accept();31$ext = new Extension();32$ext->accept();33$ext = new Extension();34$ext->accept();35$ext = new Extension();36$ext->accept();
accept
Using AI Code Generation
1$ext = new extension();2$ext->accept(1);3$ext = new extension();4$ext->accept(2);5$ext = new extension();6$ext->accept(3);7$ext = new extension();8$ext->accept(4);9$ext = new extension();10$ext->accept(5);11$ext = new extension();12$ext->accept(6);13$ext = new extension();14$ext->accept(7);15$ext = new extension();16$ext->accept(8);17$ext = new extension();18$ext->accept(9);19$ext = new extension();20$ext->accept(10);21$ext = new extension();22$ext->accept(11);23$ext = new extension();24$ext->accept(12);25$ext = new extension();26$ext->accept(13);27$ext = new extension();28$ext->accept(14);29$ext = new extension();30$ext->accept(15);31$ext = new extension();32$ext->accept(16);33$ext = new extension();34$ext->accept(17);
accept
Using AI Code Generation
1$ext = new Extension();2$ext->accept($request);3$ext = new Extension();4$ext->accept($request);5$ext = new Extension();6$ext->accept($request);7$ext = new Extension();8$ext->accept($request);9$ext = new Extension();10$ext->accept($request);11$ext = new Extension();12$ext->accept($request);13$ext = new Extension();14$ext->accept($request);15$ext = new Extension();16$ext->accept($request);17$ext = new Extension();18$ext->accept($request);19$ext = new Extension();20$ext->accept($request);21$ext = new Extension();22$ext->accept($request);23$ext = new Extension();24$ext->accept($request);25$ext = new Extension();26$ext->accept($request);27$ext = new Extension();28$ext->accept($request);29$ext = new Extension();30$ext->accept($request);31$ext = new Extension();32$ext->accept($request);33$ext = new Extension();34$ext->accept($request);
accept
Using AI Code Generation
1$ext = new Extension;2$ext->accept('php');3$ext = new Extension;4$ext->accept('php');5$ext = new Extension;6$ext->accept('php');7$ext = new Extension;8$ext->accept('php');9$ext = new Extension;10$ext->accept('php');11$ext = new Extension;12$ext->accept('php');13$ext = new Extension;14$ext->accept('php');15$ext = new Extension;16$ext->accept('php');17$ext = new Extension;18$ext->accept('php');19$ext = new Extension;20$ext->accept('php');21$ext = new Extension;22$ext->accept('php');23$ext = new Extension;24$ext->accept('php');25$ext = new Extension;26$ext->accept('php');27$ext = new Extension;28$ext->accept('php');29$ext = new Extension;30$ext->accept('php');31$ext = new Extension;32$ext->accept('php');33$ext = new Extension;34$ext->accept('php');
accept
Using AI Code Generation
1$ext = new Extension();2$ext->accept($visitor);3$visitor = new Visitor();4$visitor->visit($ext);5$visitor = new Visitor();6$visitor->extension($ext);7$ext = new Extension();8$ext->accept($visitor);9$visitor = new Visitor();10$visitor->visit($ext);11$visitor = new Visitor();12$visitor->extension($ext);13$ext = new Extension();14$ext->accept($visitor);15$visitor = new Visitor();16$visitor->visit($ext);17$visitor = new Visitor();18$visitor->extension($ext);19$ext = new Extension();20$ext->accept($visitor);21$visitor = new Visitor();22$visitor->visit($ext);23$visitor = new Visitor();24$visitor->extension($ext);25$ext = new Extension();26$ext->accept($visitor);27$visitor = new Visitor();28$visitor->visit($ext);29$visitor = new Visitor();30$visitor->extension($ext);31$ext = new Extension();32$ext->accept($visitor);33$visitor = new Visitor();34$visitor->visit($ext);
accept
Using AI Code Generation
1$ext = new extension();2$ext->accept($file);3$ext->accept($file2);4$ext = new extension();5$ext->accept($file);6$ext->accept($file2);7In the above code, the extension class is created in the 1.php file and is used in the 2.php file. The problem is that the first time the accept method is called, it works fine. But when the accept method is called the second time, it returns the error: Fatal error: Call to undefined method extension::accept() in 2.php on line 5
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Execute automation tests with accept on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.
Test now for FreeGet 100 minutes of automation test minutes FREE!!