Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add banner tile that will replace image and link tiles (closes #218)
- Loading branch information
Showing
10 changed files
with
280 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from collective.cover.testing import INTEGRATION_TESTING | ||
from collective.cover.tiles.base import IPersistentCoverTile | ||
from collective.cover.tiles.banner import BannerTile | ||
from plone.registry.interfaces import IRegistry | ||
from plone.tiles.interfaces import ITileType | ||
from zope.component import getUtility | ||
from zope.interface.verify import verifyClass | ||
from zope.interface.verify import verifyObject | ||
|
||
import unittest | ||
|
||
|
||
class LinkTileTestCase(unittest.TestCase): | ||
|
||
layer = INTEGRATION_TESTING | ||
|
||
def setUp(self): | ||
self.portal = self.layer['portal'] | ||
self.request = self.layer['request'] | ||
self.name = 'collective.cover.banner' | ||
self.tile = self.portal.restrictedTraverse( | ||
'@@%s/%s' % (self.name, 'test-tile')) | ||
|
||
def test_interface(self): | ||
self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile)) | ||
self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile)) | ||
|
||
tile = BannerTile(None, None) | ||
self.assertTrue(IPersistentCoverTile.providedBy(tile)) | ||
self.assertTrue(verifyObject(IPersistentCoverTile, tile)) | ||
|
||
def test_tile_registration(self): | ||
tile_type = getUtility(ITileType, self.name) | ||
self.assertIsNotNone(tile_type) | ||
self.assertTrue(issubclass(tile_type.schema, IPersistentCoverTile)) | ||
registry = getUtility(IRegistry) | ||
self.assertIn(self.name, registry['plone.app.tiles']) | ||
|
||
def test_default_configuration(self): | ||
self.assertTrue(self.tile.is_configurable) | ||
self.assertTrue(self.tile.is_editable) | ||
self.assertTrue(self.tile.is_droppable) | ||
|
||
def test_accepted_content_types(self): | ||
self.assertListEqual( | ||
self.tile.accepted_ct(), ['Image', 'Link']) | ||
|
||
def test_populate_with_image(self): | ||
obj = self.portal['my-image'] | ||
self.tile.populate_with_object(obj) | ||
self.assertEqual("Test image", self.tile.Title()) | ||
self.assertTrue(self.tile.has_image) | ||
self.assertIsNone(self.tile.getRemoteUrl()) | ||
|
||
def test_populate_with_link(self): | ||
obj = self.portal['my-link'] | ||
self.tile.populate_with_object(obj) | ||
self.assertEqual('Test link', self.tile.data['title']) | ||
self.assertFalse(self.tile.has_image) | ||
# FIXME: set remote_url on the object | ||
self.assertEqual(self.tile.getRemoteUrl(), 'http://') | ||
|
||
def test_render_empty(self): | ||
self.assertIn( | ||
"Drag&drop an image or link here to populate the tile.", self.tile()) | ||
|
||
def test_render_with_image(self): | ||
obj = self.portal['my-image'] | ||
self.tile.populate_with_object(obj) | ||
rendered = self.tile() | ||
self.assertIn('<img ', rendered) | ||
# https://github.com/collective/collective.cover/issues/182 | ||
self.assertIn('alt="Test image"', rendered) | ||
|
||
def test_render_with_link(self): | ||
obj = self.portal['my-link'] | ||
self.tile.populate_with_object(obj) | ||
rendered = self.tile() | ||
self.assertNotIn('<img ', rendered) | ||
# FIXME: set remote_url on the object | ||
self.assertIn('<a href="http://">Test link</a>', rendered) |
Oops, something went wrong.