[Zope3-checkins] CVS: Zope3/src/zope/app/browser/tests - __init__.py:1.1.2.1 test_absoluteurl.py:1.1.2.1 test_objectname.py:1.1.2.1
Jim Fulton
jim@zope.com
Mon, 23 Dec 2002 14:31:25 -0500
Update of /cvs-repository/Zope3/src/zope/app/browser/tests
In directory cvs.zope.org:/tmp/cvs-serv19908/zope/app/browser/tests
Added Files:
Tag: NameGeddon-branch
__init__.py test_absoluteurl.py test_objectname.py
Log Message:
Initial renaming before debugging
=== Added File Zope3/src/zope/app/browser/tests/__init__.py ===
#
# This file is necessary to make this directory a package.
=== Added File Zope3/src/zope/app/browser/tests/test_absoluteurl.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Test the AbsoluteURL view
Revision information:
$Id: test_absoluteurl.py,v 1.1.2.1 2002/12/23 19:31:23 jim Exp $
"""
from unittest import TestCase, TestSuite, main, makeSuite
from zope.interface import Interface
from zope.app.tests.placelesssetup import PlacelessSetup
from zope.component import getService, getView
from zope.interfaces.i18n import IUserPreferredCharsets
from zope.publisher.tests.test_httprequest import TestRequest
from zope.publisher.http import IHTTPRequest
from zope.publisher.http import HTTPCharsets
from zope.publisher.interfaces.browser import IBrowserPresentation
from zope.proxy.context.context import ContextWrapper
class IRoot(Interface): pass
class Root:
__implements__ = IRoot
class TrivialContent(object):
"""Trivial content object, used because instances of object are rocks."""
class Test(PlacelessSetup, TestCase):
def setUp(self):
PlacelessSetup.setUp(self)
from zope.app.browser.absoluteurl \
import AbsoluteURL, SiteAbsoluteURL
provideView=getService(None,"Views").provideView
provideView(None, 'absolute_url', IBrowserPresentation,
[AbsoluteURL])
provideView(IRoot, 'absolute_url', IBrowserPresentation,
[SiteAbsoluteURL])
provideAdapter = getService(None, "Adapters").provideAdapter
provideAdapter(IHTTPRequest, IUserPreferredCharsets, HTTPCharsets)
def testBadObject(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
view = getView(None, 'absolute_url', request)
self.assertRaises(TypeError, view.__str__)
def testNoContext(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
view = getView(Root(), 'absolute_url', request)
self.assertEqual(str(view), 'http://foobar.com')
def testBasicContext(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
content = ContextWrapper(TrivialContent(), Root(), name='a')
content = ContextWrapper(TrivialContent(), content, name='b')
content = ContextWrapper(TrivialContent(), content, name='c')
view = getView(content, 'absolute_url', request)
self.assertEqual(str(view), 'http://foobar.com/a/b/c')
breadcrumbs = view.breadcrumbs()
self.assertEqual(breadcrumbs,
({'name': '', 'url': 'http://foobar.com'},
{'name': 'a', 'url': 'http://foobar.com/a'},
{'name': 'b', 'url': 'http://foobar.com/a/b'},
{'name': 'c', 'url': 'http://foobar.com/a/b/c'},
))
def testContextWSideEffectsInMiddle(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
content = ContextWrapper(TrivialContent(), Root(), name='a')
content = ContextWrapper(TrivialContent(), content,
name='.',
side_effect_name="++skin++ZopeTop")
content = ContextWrapper(TrivialContent(), content, name='b')
content = ContextWrapper(TrivialContent(), content, name='c')
view = getView(content, 'absolute_url', request)
self.assertEqual(str(view), 'http://foobar.com/a/++skin++ZopeTop/b/c')
breadcrumbs = view.breadcrumbs()
self.assertEqual(breadcrumbs,
({'name': '', 'url': 'http://foobar.com'},
{'name': 'a', 'url': 'http://foobar.com/a/++skin++ZopeTop'},
{'name': 'b', 'url': 'http://foobar.com/a/++skin++ZopeTop/b'},
{'name': 'c', 'url': 'http://foobar.com/a/++skin++ZopeTop/b/c'},
))
def testContextWSideEffectsInFront(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
root = Root()
content = ContextWrapper(root, root,
name='.',
side_effect_name="++skin++ZopeTop")
content = ContextWrapper(TrivialContent(), content, name='a')
content = ContextWrapper(TrivialContent(), content, name='b')
content = ContextWrapper(TrivialContent(), content, name='c')
view = getView(content, 'absolute_url', request)
self.assertEqual(str(view), 'http://foobar.com/++skin++ZopeTop/a/b/c')
breadcrumbs = view.breadcrumbs()
self.assertEqual(breadcrumbs,
({'name': '', 'url': 'http://foobar.com/++skin++ZopeTop'},
{'name': 'a', 'url': 'http://foobar.com/++skin++ZopeTop/a'},
{'name': 'b', 'url': 'http://foobar.com/++skin++ZopeTop/a/b'},
{'name': 'c', 'url': 'http://foobar.com/++skin++ZopeTop/a/b/c'},
))
def test_suite():
return makeSuite(Test)
if __name__=='__main__':
main(defaultTest='test_suite')
=== Added File Zope3/src/zope/app/browser/tests/test_objectname.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Test the AbsoluteURL view
Revision information:
$Id: test_objectname.py,v 1.1.2.1 2002/12/23 19:31:23 jim Exp $
"""
from unittest import TestCase, TestSuite, main, makeSuite
from zope.interface import Interface
from zope.app.tests.placelesssetup import PlacelessSetup
from zope.component import getService, getView, getAdapter
from zope.interfaces.i18n import IUserPreferredCharsets
from zope.publisher.interfaces.browser import IBrowserPresentation
from zope.publisher.tests.test_httprequest import TestRequest
from zope.publisher.http import IHTTPRequest
from zope.publisher.http import HTTPCharsets
from zope.proxy.context.context import ContextWrapper
from zope.app.browser.objectname \
import ObjectNameView, SiteObjectNameView
class IRoot(Interface): pass
class Root:
__implements__ = IRoot
class TrivialContent(object):
"""Trivial content object, used because instances of object are rocks."""
class Test(PlacelessSetup, TestCase):
def setUp(self):
PlacelessSetup.setUp(self)
provideView = getService(None, "Views").provideView
provideView(None, 'object_name', IBrowserPresentation,
[ObjectNameView])
provideView(IRoot, 'object_name', IBrowserPresentation,
[SiteObjectNameView])
provideAdapter = getService(None, "Adapters").provideAdapter
provideAdapter(IHTTPRequest, IUserPreferredCharsets, HTTPCharsets)
def testViewBadObject(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
view = getView(None, 'object_name', request)
self.assertRaises(TypeError, view.__str__)
def testViewNoContext(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
view = getView(Root(), 'object_name', request)
self.assertRaises(TypeError, str(view))
def testViewBasicContext(self):
request = TestRequest()
request.setViewType(IBrowserPresentation)
content = ContextWrapper(TrivialContent(), Root(), name='a')
content = ContextWrapper(TrivialContent(), content, name='b')
content = ContextWrapper(TrivialContent(), content, name='c')
view = getView(content, 'object_name', request)
self.assertEqual(str(view), 'c')
def test_suite():
return makeSuite(Test)
if __name__=='__main__':
main(defaultTest='test_suite')