| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Tests; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-22 08:17:45 +08:00
										 |  |  | use BookStack\Entities\Models\Entity; | 
					
						
							| 
									
										
										
										
											2017-02-05 22:37:50 +08:00
										 |  |  | use Illuminate\Foundation\Testing\DatabaseTransactions; | 
					
						
							| 
									
										
										
										
											2017-02-04 19:58:42 +08:00
										 |  |  | use Illuminate\Foundation\Testing\TestCase as BaseTestCase; | 
					
						
							| 
									
										
										
										
											2015-09-03 01:26:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-04 19:58:42 +08:00
										 |  |  | abstract class TestCase extends BaseTestCase | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2017-02-04 19:58:42 +08:00
										 |  |  |     use CreatesApplication; | 
					
						
							| 
									
										
										
										
											2017-02-05 22:37:50 +08:00
										 |  |  |     use DatabaseTransactions; | 
					
						
							| 
									
										
										
										
											2018-04-15 01:47:13 +08:00
										 |  |  |     use SharedTestHelpers; | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-28 21:33:50 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The base URL to use while testing the application. | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-01-28 21:33:50 +08:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $baseUrl = 'http://localhost'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Assert the session contains a specific entry. | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |      * @param string $key | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |      * @return $this | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected function assertSessionHas(string $key) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->assertTrue(session()->has($key), "Session does not contain a [{$key}] entry"); | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Override of the get method so we can get visibility of custom TestResponse methods. | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @param string $uri | 
					
						
							|  |  |  |      * @param array  $headers | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |      * @return TestResponse | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function get($uri, array $headers = []) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return parent::get($uri, $headers); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Create the test response instance from the given response. | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * @param \Illuminate\Http\Response $response | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-09-21 22:15:16 +08:00
										 |  |  |      * @return TestResponse | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected function createTestResponse($response) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return TestResponse::fromBaseResponse($response); | 
					
						
							| 
									
										
										
										
											2017-08-28 20:55:39 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-01-12 22:45:54 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Assert that an activity entry exists of the given key. | 
					
						
							|  |  |  |      * Checks the activity belongs to the given entity if provided. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2020-11-08 08:03:19 +08:00
										 |  |  |     protected function assertActivityExists(string $type, Entity $entity = null) | 
					
						
							| 
									
										
										
										
											2020-01-12 22:45:54 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-11-08 08:03:19 +08:00
										 |  |  |         $detailsToCheck = ['type' => $type]; | 
					
						
							| 
									
										
										
										
											2020-01-12 22:45:54 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($entity) { | 
					
						
							|  |  |  |             $detailsToCheck['entity_type'] = $entity->getMorphClass(); | 
					
						
							|  |  |  |             $detailsToCheck['entity_id'] = $entity->id; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertDatabaseHas('activities', $detailsToCheck); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | } |