| 
									
										
										
										
											2021-09-07 05:19:06 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Tests\Settings; | 
					
						
							| 
									
										
										
										
											2021-01-31 08:23:15 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use Tests\TestCase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FooterLinksTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function test_saving_setting() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |         $resp = $this->asAdmin()->post('/settings', [ | 
					
						
							| 
									
										
										
										
											2021-01-31 08:23:15 +08:00
										 |  |  |             'setting-app-footer-links' => [ | 
					
						
							|  |  |  |                 ['label' => 'My custom link 1', 'url' => 'https://example.com/1'], | 
					
						
							|  |  |  |                 ['label' => 'My custom link 2', 'url' => 'https://example.com/2'], | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  |         $resp->assertRedirect('/settings'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $result = setting('app-footer-links'); | 
					
						
							|  |  |  |         $this->assertIsArray($result); | 
					
						
							|  |  |  |         $this->assertCount(2, $result); | 
					
						
							|  |  |  |         $this->assertEquals('My custom link 2', $result[1]['label']); | 
					
						
							|  |  |  |         $this->assertEquals('https://example.com/1', $result[0]['url']); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_set_options_visible_on_settings_page() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->setSettings(['app-footer-links' => [ | 
					
						
							|  |  |  |             ['label' => 'My custom link', 'url' => 'https://example.com/link-a'], | 
					
						
							|  |  |  |             ['label' => 'Another Link', 'url' => 'https://example.com/link-b'], | 
					
						
							|  |  |  |         ]]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $resp = $this->asAdmin()->get('/settings'); | 
					
						
							|  |  |  |         $resp->assertSee('value="My custom link"'); | 
					
						
							|  |  |  |         $resp->assertSee('value="Another Link"'); | 
					
						
							|  |  |  |         $resp->assertSee('value="https://example.com/link-a"'); | 
					
						
							|  |  |  |         $resp->assertSee('value="https://example.com/link-b"'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_footer_links_show_on_pages() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->setSettings(['app-footer-links' => [ | 
					
						
							|  |  |  |             ['label' => 'My custom link', 'url' => 'https://example.com/link-a'], | 
					
						
							|  |  |  |             ['label' => 'Another Link', 'url' => 'https://example.com/link-b'], | 
					
						
							|  |  |  |         ]]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->get('/login')->assertElementContains('footer a[href="https://example.com/link-a"]', 'My custom link'); | 
					
						
							|  |  |  |         $this->asEditor()->get('/')->assertElementContains('footer a[href="https://example.com/link-b"]', 'Another link'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function test_using_translation_system_for_labels() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->setSettings(['app-footer-links' => [ | 
					
						
							|  |  |  |             ['label' => 'trans::common.privacy_policy', 'url' => 'https://example.com/privacy'], | 
					
						
							|  |  |  |             ['label' => 'trans::common.terms_of_service', 'url' => 'https://example.com/terms'], | 
					
						
							|  |  |  |         ]]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $resp = $this->get('/login'); | 
					
						
							|  |  |  |         $resp->assertElementContains('footer a[href="https://example.com/privacy"]', 'Privacy Policy'); | 
					
						
							|  |  |  |         $resp->assertElementContains('footer a[href="https://example.com/terms"]', 'Terms of Service'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | } |