76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								<?php namespace Tests;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class UserPreferencesTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_update_sort_preference()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $editor = $this->getEditor();
							 | 
						||
| 
								 | 
							
								        $this->actingAs($editor);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/books', [
							 | 
						||
| 
								 | 
							
								            'sort' => 'created_at',
							 | 
						||
| 
								 | 
							
								            'order' => 'desc'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $updateRequest->assertStatus(302);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertDatabaseHas('settings', [
							 | 
						||
| 
								 | 
							
								            'setting_key' => 'user:' . $editor->id . ':books_sort',
							 | 
						||
| 
								 | 
							
								            'value' => 'created_at'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $this->assertDatabaseHas('settings', [
							 | 
						||
| 
								 | 
							
								            'setting_key' => 'user:' . $editor->id . ':books_sort_order',
							 | 
						||
| 
								 | 
							
								            'value' => 'desc'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('created_at', setting()->getForCurrentUser('books_sort'));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('desc', setting()->getForCurrentUser('books_sort_order'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_update_sort_preference_defaults()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $editor = $this->getEditor();
							 | 
						||
| 
								 | 
							
								        $this->actingAs($editor);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/bookshelves', [
							 | 
						||
| 
								 | 
							
								            'sort' => 'cat',
							 | 
						||
| 
								 | 
							
								            'order' => 'dog'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $updateRequest->assertStatus(302);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('name', setting()->getForCurrentUser('bookshelves_sort'));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('asc', setting()->getForCurrentUser('bookshelves_sort_order'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_update_sort_bad_entity_type_handled()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $editor = $this->getEditor();
							 | 
						||
| 
								 | 
							
								        $this->actingAs($editor);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/dogs', [
							 | 
						||
| 
								 | 
							
								            'sort' => 'name',
							 | 
						||
| 
								 | 
							
								            'order' => 'asc'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $updateRequest->assertStatus(500);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertNotEmpty('name', setting()->getForCurrentUser('bookshelves_sort'));
							 | 
						||
| 
								 | 
							
								        $this->assertNotEmpty('asc', setting()->getForCurrentUser('bookshelves_sort_order'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function test_update_expansion_preference()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $editor = $this->getEditor();
							 | 
						||
| 
								 | 
							
								        $this->actingAs($editor);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $updateRequest = $this->patch('/settings/users/' . $editor->id.'/update-expansion-preference/home-details', ['expand' => 'true']);
							 | 
						||
| 
								 | 
							
								        $updateRequest->assertStatus(204);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertDatabaseHas('settings', [
							 | 
						||
| 
								 | 
							
								            'setting_key' => 'user:' . $editor->id . ':section_expansion#home-details',
							 | 
						||
| 
								 | 
							
								            'value' => 'true'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(true, setting()->getForCurrentUser('section_expansion#home-details'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $invalidKeyRequest = $this->patch('/settings/users/' . $editor->id.'/update-expansion-preference/my-home-details', ['expand' => 'true']);
							 | 
						||
| 
								 | 
							
								        $invalidKeyRequest->assertStatus(500);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |