From 54ca4487faf46b52fe5f0457cd194c0492ce3e47 Mon Sep 17 00:00:00 2001 From: Abijeet Date: Sat, 15 Sep 2018 21:05:51 +0530 Subject: [PATCH] Adds tests and few fixes. Signed-off-by: Abijeet --- app/Http/Controllers/PageController.php | 4 ++-- resources/lang/de/entities.php | 3 ++- resources/lang/en/entities.php | 3 ++- resources/lang/es/entities.php | 3 ++- resources/lang/es_AR/entities.php | 3 ++- resources/lang/fr/entities.php | 3 ++- resources/lang/it/entities.php | 3 ++- resources/lang/ja/entities.php | 3 ++- resources/lang/nl/entities.php | 3 ++- resources/lang/pl/entities.php | 3 ++- resources/lang/pt_BR/entities.php | 3 ++- resources/lang/ru/entities.php | 3 ++- resources/lang/sk/entities.php | 3 ++- resources/lang/sv/entities.php | 3 ++- resources/lang/zh_CN/entities.php | 4 +++- resources/lang/zh_TW/entities.php | 3 ++- tests/Entity/PageRevisionTest.php | 23 ++++++++++++++++++++++- 17 files changed, 55 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 2ca991620..4cfd4c832 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -2,7 +2,6 @@ use Activity; use BookStack\Exceptions\NotFoundException; -use BookStack\Exceptions\BadRequestException; use BookStack\Repos\EntityRepo; use BookStack\Repos\UserRepo; use BookStack\Services\ExportService; @@ -480,7 +479,8 @@ class PageController extends Controller // Check if its the latest revision, cannot delete latest revision. if (intval($current->id) === intval($revId)) { - throw new BadRequestException("Cannot delete the current revision #{$revId}"); + session()->flash('error', trans('entities.revision_cannot_delete_latest')); + return view('pages/revisions', ['page' => $page, 'book' => $page->book, 'current' => $page]); } $revision->delete(); diff --git a/resources/lang/de/entities.php b/resources/lang/de/entities.php index 22b824c51..7c27be17b 100644 --- a/resources/lang/de/entities.php +++ b/resources/lang/de/entities.php @@ -261,5 +261,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Sind Sie sicher, dass Sie diese Revision löschen wollen?', - 'revision_delete_success' => 'Revision gelöscht' + 'revision_delete_success' => 'Revision gelöscht', + 'revision_cannot_delete_latest' => 'Die letzte Version kann nicht gelöscht werden.' ]; diff --git a/resources/lang/en/entities.php b/resources/lang/en/entities.php index d730740ea..72d47bc01 100644 --- a/resources/lang/en/entities.php +++ b/resources/lang/en/entities.php @@ -271,5 +271,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Are you sure you want to delete this revision?', - 'revision_delete_success' => 'Revision deleted' + 'revision_delete_success' => 'Revision deleted', + 'revision_cannot_delete_latest' => 'Cannot delete the latest revision.' ]; \ No newline at end of file diff --git a/resources/lang/es/entities.php b/resources/lang/es/entities.php index 1c8039272..a84d72fff 100644 --- a/resources/lang/es/entities.php +++ b/resources/lang/es/entities.php @@ -270,5 +270,6 @@ return [ * Revision */ 'revision_delete_confirm' => '¿Está seguro de que desea eliminar esta revisión?', - 'revision_delete_success' => 'Revisión eliminada' + 'revision_delete_success' => 'Revisión eliminada', + 'revision_cannot_delete_latest' => 'No se puede eliminar la última revisión.' ]; diff --git a/resources/lang/es_AR/entities.php b/resources/lang/es_AR/entities.php index a7f79dfe6..91d156e53 100644 --- a/resources/lang/es_AR/entities.php +++ b/resources/lang/es_AR/entities.php @@ -270,5 +270,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Are you sure you want to delete this revision?', - 'revision_delete_success' => 'Revisión eliminada' + 'revision_delete_success' => 'Revisión eliminada', + 'revision_cannot_delete_latest' => 'No se puede eliminar la última revisión.' ]; diff --git a/resources/lang/fr/entities.php b/resources/lang/fr/entities.php index 9ca181b03..deee70ee4 100644 --- a/resources/lang/fr/entities.php +++ b/resources/lang/fr/entities.php @@ -270,5 +270,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Êtes-vous sûr de vouloir supprimer cette révision?', - 'revision_delete_success' => 'Révision supprimée' + 'revision_delete_success' => 'Révision supprimée', + 'revision_cannot_delete_latest' => 'Impossible de supprimer la dernière révision.' ]; \ No newline at end of file diff --git a/resources/lang/it/entities.php b/resources/lang/it/entities.php index 4a28972e6..ad1733b91 100755 --- a/resources/lang/it/entities.php +++ b/resources/lang/it/entities.php @@ -265,5 +265,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Sei sicuro di voler eliminare questa revisione?', - 'revision_delete_success' => 'Revisione cancellata' + 'revision_delete_success' => 'Revisione cancellata', + 'revision_cannot_delete_latest' => 'Impossibile eliminare l\'ultima revisione.' ]; \ No newline at end of file diff --git a/resources/lang/ja/entities.php b/resources/lang/ja/entities.php index c7df3201e..f177154f4 100644 --- a/resources/lang/ja/entities.php +++ b/resources/lang/ja/entities.php @@ -262,5 +262,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'このリビジョンを削除しますか?', - 'revision_delete_success' => 'リビジョンを削除しました' + 'revision_delete_success' => 'リビジョンを削除しました', + 'revision_cannot_delete_latest' => '最新のリビジョンを削除できません。' ]; diff --git a/resources/lang/nl/entities.php b/resources/lang/nl/entities.php index 043dfe321..29bb11a37 100644 --- a/resources/lang/nl/entities.php +++ b/resources/lang/nl/entities.php @@ -264,5 +264,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Weet u zeker dat u deze revisie wilt verwijderen?', - 'revision_delete_success' => 'Revisie verwijderd' + 'revision_delete_success' => 'Revisie verwijderd', + 'revision_cannot_delete_latest' => 'Kan de laatste revisie niet verwijderen.' ]; diff --git a/resources/lang/pl/entities.php b/resources/lang/pl/entities.php index e84054181..8b53591f6 100644 --- a/resources/lang/pl/entities.php +++ b/resources/lang/pl/entities.php @@ -262,5 +262,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Czy na pewno chcesz usunąć tę wersję?', - 'revision_delete_success' => 'Usunięto wersję' + 'revision_delete_success' => 'Usunięto wersję', + 'revision_cannot_delete_latest' => 'Nie można usunąć najnowszej wersji.' ]; \ No newline at end of file diff --git a/resources/lang/pt_BR/entities.php b/resources/lang/pt_BR/entities.php index 9eeb8201d..d93b9dff9 100644 --- a/resources/lang/pt_BR/entities.php +++ b/resources/lang/pt_BR/entities.php @@ -263,5 +263,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Tem certeza de que deseja excluir esta revisão?', - 'revision_delete_success' => 'Revisão excluída' + 'revision_delete_success' => 'Revisão excluída', + 'revision_cannot_delete_latest' => 'Não é possível excluir a revisão mais recente.' ]; \ No newline at end of file diff --git a/resources/lang/ru/entities.php b/resources/lang/ru/entities.php index ef2caad40..9c3517beb 100644 --- a/resources/lang/ru/entities.php +++ b/resources/lang/ru/entities.php @@ -263,5 +263,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Вы действительно хотите удалить эту ревизию?', - 'revision_delete_success' => 'Редактирование удалено' + 'revision_delete_success' => 'Редактирование удалено', + 'revision_cannot_delete_latest' => 'Не удается удалить последнюю версию.' ]; \ No newline at end of file diff --git a/resources/lang/sk/entities.php b/resources/lang/sk/entities.php index 4f0744012..7fbbaf2e2 100644 --- a/resources/lang/sk/entities.php +++ b/resources/lang/sk/entities.php @@ -237,5 +237,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Naozaj chcete túto revíziu odstrániť?', - 'revision_delete_success' => 'Revízia bola vymazaná' + 'revision_delete_success' => 'Revízia bola vymazaná', + 'revision_cannot_delete_latest' => 'Nie je možné vymazať poslednú revíziu.' ]; diff --git a/resources/lang/sv/entities.php b/resources/lang/sv/entities.php index 0f515fc50..8c09bd377 100644 --- a/resources/lang/sv/entities.php +++ b/resources/lang/sv/entities.php @@ -270,5 +270,6 @@ return [ * Revision */ 'revision_delete_confirm' => 'Är du säker på att du vill radera den här versionen?', - 'revision_delete_success' => 'Revisionen raderad' + 'revision_delete_success' => 'Revisionen raderad', + 'revision_cannot_delete_latest' => 'Det går inte att ta bort den senaste versionen.' ]; \ No newline at end of file diff --git a/resources/lang/zh_CN/entities.php b/resources/lang/zh_CN/entities.php index 5e3b360a6..734a47a5a 100644 --- a/resources/lang/zh_CN/entities.php +++ b/resources/lang/zh_CN/entities.php @@ -262,5 +262,7 @@ return [ /** * Revision */ - 'revision_delete_confirm' => '您确定要删除此修订版吗?' + 'revision_delete_confirm' => '您确定要删除此修订版吗?', + 'revision_delete_success' => '修订删除', + 'revision_cannot_delete_latest' => '无法删除最新版本。' ]; diff --git a/resources/lang/zh_TW/entities.php b/resources/lang/zh_TW/entities.php index f37d786b6..1c4d526fd 100644 --- a/resources/lang/zh_TW/entities.php +++ b/resources/lang/zh_TW/entities.php @@ -264,5 +264,6 @@ return [ * Revision */ 'revision_delete_confirm' => '您確定要刪除此修訂版嗎?', - 'revision_delete_success' => '修訂刪除' + 'revision_delete_success' => '修訂刪除', + 'revision_cannot_delete_latest' => '無法刪除最新版本。' ]; diff --git a/tests/Entity/PageRevisionTest.php b/tests/Entity/PageRevisionTest.php index beebc7adf..dd2b77255 100644 --- a/tests/Entity/PageRevisionTest.php +++ b/tests/Entity/PageRevisionTest.php @@ -11,7 +11,6 @@ class PageRevisionTest extends TestCase { $page = Page::first(); $startCount = $page->revision_count; - $resp = $this->asEditor()->put($page->getUrl(), ['name' => 'Updated page', 'html' => 'new page html', 'summary' => 'Update a']); $resp->assertStatus(302); @@ -29,4 +28,26 @@ class PageRevisionTest extends TestCase $pageView->assertSee('Revision #' . $page->revision_count); } + public function test_revision_deletion() { + $page = Page::first(); + $this->asEditor()->put($page->getUrl(), ['name' => 'Updated page', 'html' => 'new page html', 'summary' => 'Update a']); + $this->asEditor()->put($page->getUrl(), ['name' => 'Updated page', 'html' => 'new page html', 'summary' => 'Update a']); + $page = Page::find($page->id); + $beforeRevisionCount = $page->revisions->count(); + + // Delete the first revision + $revision = $page->revisions->get(0); + $resp = $this->asEditor()->delete($revision->getUrl('/delete/')); + $resp->assertStatus(200); + + $page = Page::find($page->id); + $afterRevisionCount = $page->revisions->count(); + + $this->assertTrue($beforeRevisionCount === ($afterRevisionCount + 1)); + + // Try to delete the latest revision + $revision = $page->revisions->get($page->revisions->count() - 1); + $resp = $this->asEditor()->delete($revision->getUrl('/delete/')); + $resp->assertSee('Cannot delete the latest revision'); + } } \ No newline at end of file