mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-12-04 05:22:38 +03:00
Sessions: Ignored extra meta/dist content in history tracking
For #5925 Added tests to cover. Extracted existing test to place with similiar sessions tests
This commit is contained in:
@@ -14,7 +14,10 @@ use Illuminate\Session\Middleware\StartSession as Middleware;
|
||||
class StartSessionExtended extends Middleware
|
||||
{
|
||||
protected static array $pathPrefixesExcludedFromHistory = [
|
||||
'uploads/images/'
|
||||
'uploads/images/',
|
||||
'dist/',
|
||||
'manifest.json',
|
||||
'opensearch.xml',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
53
tests/SessionTest.php
Normal file
53
tests/SessionTest.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace Tests;
|
||||
|
||||
class SessionTest extends TestCase
|
||||
{
|
||||
public function test_secure_images_not_tracked_in_session_history()
|
||||
{
|
||||
config()->set('filesystems.images', 'local_secure');
|
||||
$this->asEditor();
|
||||
$page = $this->entities->page();
|
||||
$result = $this->files->uploadGalleryImageToPage($this, $page);
|
||||
$expectedPath = storage_path($result['path']);
|
||||
$this->assertFileExists($expectedPath);
|
||||
|
||||
$this->get('/books');
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
|
||||
$resp = $this->get($result['path']);
|
||||
$resp->assertOk();
|
||||
$resp->assertHeader('Content-Type', 'image/png');
|
||||
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
|
||||
if (file_exists($expectedPath)) {
|
||||
unlink($expectedPath);
|
||||
}
|
||||
}
|
||||
|
||||
public function test_pwa_manifest_is_not_tracked_in_session_history()
|
||||
{
|
||||
$this->asEditor()->get('/books');
|
||||
$this->get('/manifest.json');
|
||||
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
}
|
||||
|
||||
public function test_dist_dir_access_is_not_tracked_in_session_history()
|
||||
{
|
||||
$this->asEditor()->get('/books');
|
||||
$this->get('/dist/sub/hello.txt');
|
||||
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
}
|
||||
|
||||
public function test_opensearch_is_not_tracked_in_session_history()
|
||||
{
|
||||
$this->asEditor()->get('/books');
|
||||
$this->get('/opensearch.xml');
|
||||
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
}
|
||||
}
|
||||
@@ -429,29 +429,6 @@ class ImageTest extends TestCase
|
||||
}
|
||||
}
|
||||
|
||||
public function test_secure_images_not_tracked_in_session_history()
|
||||
{
|
||||
config()->set('filesystems.images', 'local_secure');
|
||||
$this->asEditor();
|
||||
$page = $this->entities->page();
|
||||
$result = $this->files->uploadGalleryImageToPage($this, $page);
|
||||
$expectedPath = storage_path($result['path']);
|
||||
$this->assertFileExists($expectedPath);
|
||||
|
||||
$this->get('/books');
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
|
||||
$resp = $this->get($result['path']);
|
||||
$resp->assertOk();
|
||||
$resp->assertHeader('Content-Type', 'image/png');
|
||||
|
||||
$this->assertEquals(url('/books'), session()->previousUrl());
|
||||
|
||||
if (file_exists($expectedPath)) {
|
||||
unlink($expectedPath);
|
||||
}
|
||||
}
|
||||
|
||||
public function test_system_images_remain_public_with_local_secure_restricted()
|
||||
{
|
||||
config()->set('filesystems.images', 'local_secure_restricted');
|
||||
|
||||
Reference in New Issue
Block a user