File tree Expand file tree Collapse file tree
src/Http/Controllers/CP/Fieldtypes Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -12,7 +12,11 @@ class MarkdownFieldtypeController extends CpController
1212{
1313 public function preview (Request $ request )
1414 {
15- return $ this ->fieldtype ($ request ->config )->augment ($ request ->value );
15+ $ config = $ request ->config ;
16+
17+ abort_unless (($ config ['type ' ] ?? null ) === 'markdown ' , 400 , 'Bad Request ' );
18+
19+ return $ this ->fieldtype ($ config )->augment ($ request ->value );
1620 }
1721
1822 protected function fieldtype ($ config )
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tests \Feature \Fieldtypes ;
4+
5+ use PHPUnit \Framework \Attributes \Test ;
6+ use Statamic \Facades \User ;
7+ use Tests \FakesRoles ;
8+ use Tests \PreventSavingStacheItemsToDisk ;
9+ use Tests \TestCase ;
10+
11+ class PreviewMarkdownTest extends TestCase
12+ {
13+ use FakesRoles;
14+ use PreventSavingStacheItemsToDisk;
15+
16+ private function request ($ payload )
17+ {
18+ return $ this ->postJson (cp_route ('markdown.preview ' ), $ payload );
19+ }
20+
21+ #[Test]
22+ public function it_parses_markdown ()
23+ {
24+ $ this ->setTestRoles (['test ' => ['access cp ' ]]);
25+ $ user = User::make ()->assignRole ('test ' )->save ();
26+
27+ $ this
28+ ->actingAs ($ user )
29+ ->request (['config ' => ['type ' => 'markdown ' ], 'value ' => '**Hello** ' ])
30+ ->assertContent ("<p><strong>Hello</strong></p> \n" );
31+ }
32+
33+ #[Test]
34+ public function it_aborts_for_non_markdown ()
35+ {
36+ $ this ->setTestRoles (['test ' => ['access cp ' ]]);
37+ $ user = User::make ()->assignRole ('test ' )->save ();
38+
39+ $ this
40+ ->actingAs ($ user )
41+ ->request (['config ' => ['type ' => 'text ' ], 'value ' => '**Hello** ' ])
42+ ->assertBadRequest ()
43+ ->assertJson (['message ' => 'Bad Request ' ]);
44+ }
45+
46+ #[Test]
47+ public function it_denies_access_without_control_panel_permission ()
48+ {
49+ $ this ->setTestRoles (['test ' => []]);
50+ $ user = User::make ()->assignRole ('test ' )->save ();
51+
52+ $ this
53+ ->actingAs ($ user )
54+ ->request (['config ' => ['type ' => 'markdown ' ], 'value ' => '**Hello** ' ])
55+ ->assertForbidden ();
56+ }
57+ }
You can’t perform that action at this time.
0 commit comments