Skip to content

Commit

Permalink
FIX Validate Category / Tag Titles
Browse files Browse the repository at this point in the history
  • Loading branch information
freezernick committed Jan 31, 2023
1 parent 6c0ae1f commit af17da7
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Model/BlogCategory.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class BlogCategory extends DataObject implements CategorisationObject
*/
const DUPLICATE_EXCEPTION = 'DUPLICATE';

const EMPTY_TITLE_EXCEPTION = 'EMPTY_TITLE';

/**
* {@inheritDoc}
* @var string
Expand Down
14 changes: 14 additions & 0 deletions src/Model/BlogObject.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ public function validate()
$validation->addError($this->getDuplicateError(), self::DUPLICATE_EXCEPTION);
}

if(empty($this->Title)) {
$validation->addError($this->getEmptyTitleError(), self::EMPTY_TITLE_EXCEPTION);
}

return $validation;
}

Expand Down Expand Up @@ -244,4 +248,14 @@ abstract protected function getListUrlSegment();
* @return string
*/
abstract protected function getDuplicateError();

/**
* Returns an error message for this object when it tries to write with an empty title.
*
* @return string
*/
protected function getEmptyTitleError()
{
return _t(__CLASS__ . '.EmptyTitle', 'Title must not be empty');
}
}
2 changes: 2 additions & 0 deletions src/Model/BlogTag.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class BlogTag extends DataObject implements CategorisationObject
*/
const DUPLICATE_EXCEPTION = 'DUPLICATE';

const EMPTY_TITLE_EXCEPTION = 'EMPTY_TITLE';

/**
* {@inheritDoc}
* @var string
Expand Down
19 changes: 19 additions & 0 deletions tests/php/BlogCategoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,23 @@ public function testDuplicateCategories()
$this->assertEquals(BlogTag::DUPLICATE_EXCEPTION, $messages[0]['messageType']);
}
}

public function testEmptyTitle()
{
$blog = $this->objFromFixture(Blog::class, 'FirstBlog');

$category = new BlogCategory();
$category->Title = '';
$category->BlogID = $blog->ID;
$category->URLSegment = 'test';

try {
$category->write();
$this->fail('BlogCategory with empty title is written');
} catch (ValidationException $e) {
$messages = $e->getResult()->getMessages();
$this->assertCount(1, $messages);
$this->assertEquals(BlogCategory::EMPTY_TITLE_EXCEPTION, $messages[0]['messageType']);
}
}
}
19 changes: 19 additions & 0 deletions tests/php/BlogTagTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,23 @@ public function testBlogTagUrlSegmentsAreAutomaticallyUpdated()
$tag->write();
$this->assertEquals($tag->URLSegment, "another-test");
}

public function testEmptyTitle()
{
$blog = $this->objFromFixture(Blog::class, 'FirstBlog');

$tag = new BlogTag();
$tag->Title = '';
$tag->BlogID = $blog->ID;
$tag->URLSegment = 'test';

try {
$tag->write();
$this->fail('BlogTag with empty title is written');
} catch (ValidationException $e) {
$messages = $e->getResult()->getMessages();
$this->assertCount(1, $messages);
$this->assertEquals(BlogTag::EMPTY_TITLE_EXCEPTION, $messages[0]['messageType']);
}
}
}

0 comments on commit af17da7

Please sign in to comment.