4
4
5
5
use Matteoc99 \LaravelPreference \Enums \Cast ;
6
6
use Matteoc99 \LaravelPreference \Factory \PreferenceBuilder ;
7
- use Matteoc99 \LaravelPreference \Rules \InRule ;
8
7
use Matteoc99 \LaravelPreference \Tests \TestSubjects \Enums \General ;
9
8
use Matteoc99 \LaravelPreference \Tests \TestSubjects \Enums \VideoPreferences ;
10
9
use Matteoc99 \LaravelPreference \Tests \TestSubjects \Models \LowerThanRule ;
10
+ use Matteoc99 \LaravelPreference \Utils \ConfigHelper ;
11
11
12
12
class WorkflowTest extends ApiTestCase
13
13
{
14
14
15
15
16
-
17
-
18
16
/** @test */
19
17
public function test_workflow ()
20
18
{
@@ -38,22 +36,46 @@ public function test_int_workflow()
38
36
$ video = $ this ->get (route ('preferences.user.video.get ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]));
39
37
$ video ->assertSuccessful ();
40
38
41
- $ video ->assertJson (['value ' => 2 ]);
39
+ $ video ->assertJson (['value ' => 2 ]);
42
40
43
- $ video = $ this ->patch (route ('preferences.user.video.update ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]),[
44
- 'value ' => 4
41
+ $ video = $ this ->patch (route ('preferences.user.video.update ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]), [
42
+ 'value ' => 4
45
43
]);
46
- $ video ->assertJson (['value ' => 4 ]);
44
+ $ video ->assertJson (['value ' => 4 ]);
47
45
48
46
$ video = $ this ->delete (route ('preferences.user.video.delete ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]));
49
47
50
- $ video ->assertJson (['value ' => 2 ]);
48
+ $ video ->assertJson (['value ' => 2 ]);
51
49
52
- $ video = $ this ->patch (route ('preferences.user.video.update ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]),[
53
- 'value ' => 40
50
+ $ video = $ this ->patch (route ('preferences.user.video.update ' , ['scope_id ' => 1 , 'preference ' => 'quality ' ]), [
51
+ 'value ' => 40
54
52
]);
55
53
56
54
$ video ->assertRedirect ();
57
55
}
58
56
57
+ /** @test */
58
+
59
+ public function test_xss_workflow ()
60
+ {
61
+ PreferenceBuilder::init (General::EMAILS )->create ();
62
+
63
+ $ xssInput = '<span/onmouseover=confirm(1)>X</span> ' ;
64
+
65
+ $ response = $ this ->patch (route ('preferences.user.general.update ' , ['scope_id ' => 1 , 'preference ' => 'emails ' ]), [
66
+ 'value ' => $ xssInput
67
+ ]);
68
+
69
+ $ response ->assertSuccessful ();
70
+
71
+ $ email = $ this ->get (route ('preferences.user.general.get ' , ['scope_id ' => 1 , 'preference ' => 'emails ' ]));
72
+
73
+ if (ConfigHelper::isXssCleanEnabled ()) {
74
+ $ email ->assertJson (['value ' => '<span/>X</span> ' ]);
75
+ } else {
76
+ $ email ->assertJson (['value ' => $ xssInput ]);
77
+ }
78
+ }
79
+
80
+
59
81
}
0 commit comments