X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/1c43602f4bed60a84f47735ca8bc4a399018e013..refs/pull/3039/head:/tests/AuditLogTest.php diff --git a/tests/AuditLogTest.php b/tests/AuditLogTest.php index bc36a184d..f909cd79a 100644 --- a/tests/AuditLogTest.php +++ b/tests/AuditLogTest.php @@ -17,7 +17,7 @@ class AuditLogTest extends TestCase /** @var ActivityService */ protected $activityService; - public function setUp(): void + protected function setUp(): void { parent::setUp(); $this->activityService = app(ActivityService::class); @@ -140,4 +140,53 @@ class AuditLogTest extends TestCase $resp->assertSeeText($chapter->name); $resp->assertDontSeeText($page->name); } + + public function test_ip_address_logged_and_visible() + { + config()->set('app.proxies', '*'); + $editor = $this->getEditor(); + /** @var Page $page */ + $page = Page::query()->first(); + + $this->actingAs($editor)->put($page->getUrl(), [ + 'name' => 'Updated page', + 'html' => '

Updated content

', + ], [ + 'X-Forwarded-For' => '192.123.45.1', + ])->assertRedirect($page->refresh()->getUrl()); + + $this->assertDatabaseHas('activities', [ + 'type' => ActivityType::PAGE_UPDATE, + 'ip' => '192.123.45.1', + 'user_id' => $editor->id, + 'entity_id' => $page->id, + ]); + + $resp = $this->asAdmin()->get('/settings/audit'); + $resp->assertSee('192.123.45.1'); + } + + public function test_ip_address_not_logged_in_demo_mode() + { + config()->set('app.proxies', '*'); + config()->set('app.env', 'demo'); + $editor = $this->getEditor(); + /** @var Page $page */ + $page = Page::query()->first(); + + $this->actingAs($editor)->put($page->getUrl(), [ + 'name' => 'Updated page', + 'html' => '

Updated content

', + ], [ + 'X-Forwarded-For' => '192.123.45.1', + 'REMOTE_ADDR' => '192.123.45.2', + ])->assertRedirect($page->refresh()->getUrl()); + + $this->assertDatabaseHas('activities', [ + 'type' => ActivityType::PAGE_UPDATE, + 'ip' => '127.0.0.1', + 'user_id' => $editor->id, + 'entity_id' => $page->id, + ]); + } }