Added 404 page and extra tests

This commit is contained in:
Dan Brown 2015-09-29 21:25:03 +01:00
parent fd3929e809
commit 144eb69cad
5 changed files with 35 additions and 13 deletions

View File

@ -91,9 +91,12 @@ class BookRepo
public function findSuitableSlug($name, $currentId = false) public function findSuitableSlug($name, $currentId = false)
{ {
$slug = Str::slug($name); $originalSlug = Str::slug($name);
$slug = $originalSlug;
$count = 2;
while($this->doesSlugExist($slug, $currentId)) { while($this->doesSlugExist($slug, $currentId)) {
$slug .= '-' . substr(md5(rand(1, 500)), 0, 3); $slug = $originalSlug . '-' . $count;
$count++;
} }
return $slug; return $slug;
} }

View File

@ -11,6 +11,7 @@
</div> </div>
@if(count($books) > 1)
<div class="col-md-4"> <div class="col-md-4">
<h3>Show Other Books</h3> <h3>Show Other Books</h3>
@foreach($books as $otherBook) @foreach($books as $otherBook)
@ -21,6 +22,7 @@
@endif @endif
@endforeach @endforeach
</div> </div>
@endif
</div> </div>

View File

@ -0,0 +1,9 @@
@extends('public')
@section('content')
<h1>Page Not Found</h1>
<p>The page you were looking for could not be found.</p>
@stop

View File

@ -37,7 +37,7 @@
<div class="links text-center"> <div class="links text-center">
@yield('header-buttons') @yield('header-buttons')
</div> </div>
@if($signedIn) @if(isset($signedIn) && $signedIn)
<img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}"> <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
<div class="dropdown-container" data-dropdown> <div class="dropdown-container" data-dropdown>
<span class="user-name" data-dropdown-toggle> <span class="user-name" data-dropdown-toggle>

View File

@ -1,5 +1,7 @@
<?php <?php
use Illuminate\Support\Facades\DB;
class EntityTest extends TestCase class EntityTest extends TestCase
{ {
@ -113,6 +115,12 @@ class EntityTest extends TestCase
->seePageIs('/books/my-first-book') ->seePageIs('/books/my-first-book')
->see($book->name)->see($book->description); ->see($book->name)->see($book->description);
// Ensure duplicate names are given different slugs
$this->asAdmin()
->visit('/books/create')
->submitForm('Save Book', $book->toArray())
->seePageIs('/books/my-first-book-2');
$book = \BookStack\Book::where('slug', '=', 'my-first-book')->first(); $book = \BookStack\Book::where('slug', '=', 'my-first-book')->first();
return $book; return $book;
} }