Skip to content

Commit

Permalink
Merge pull request #3734 from 4teamwork/pg_base_tests
Browse files Browse the repository at this point in the history
Porting a first part of the og.base tests to integrationtests.
  • Loading branch information
deiferni committed Dec 12, 2017
2 parents 99e9834 + a2a8acb commit 962af68
Show file tree
Hide file tree
Showing 11 changed files with 422 additions and 476 deletions.
17 changes: 12 additions & 5 deletions opengever/base/tests/test_anonymous.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,29 @@
from ftw.testbrowser import browsing
from opengever.testing import FunctionalTestCase
from opengever.testing import IntegrationTestCase


class TestAnonymousAccess(FunctionalTestCase):
class TestAnonymousAccess(IntegrationTestCase):

@browsing
def test_anonymous_cannot_access_search(self, browser):
with browser.expect_unauthorized():
browser.visit(self.portal, view='search')
browser.open(self.portal, view='search')

@browsing
def test_anonymous_can_access_login_form(self, browser):
browser.visit(self.portal, view='login_form')
browser.open(self.portal, view='login_form')
self.assertEquals(self.portal.absolute_url() + '/login_form',
browser.url)

@browsing
def test_authenticated_can_access_search(self, browser):
browser.login().visit(self.portal, view='search')
self.login(self.regular_user, browser=browser)

# needed because of the TranslatedTitle brain patch
browser.open()
browser.click_on("Deutsch")

browser.open(self.portal, view='@@search')

self.assertEquals(self.portal.absolute_url() + '/@@search',
browser.url)
45 changes: 18 additions & 27 deletions opengever/base/tests/test_base_behavior.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,34 @@
from opengever.testing import FunctionalTestCase
from plone.dexterity.fti import DexterityFTI
import transaction
from ftw.testbrowser import browsing
from ftw.testbrowser.pages import factoriesmenu
from opengever.testing import IntegrationTestCase


class TestBaseBehavior(FunctionalTestCase):

def setUp(self):
super(TestBaseBehavior, self).setUp()

fti = DexterityFTI('OpenGeverBaseFTI')
fti.schema = 'opengever.base.tests.emptyschema.IEmptySchema'
fti.behaviors = ('opengever.base.behaviors.base.IOpenGeverBase',)
self.portal.portal_types._setObject('OpenGeverBaseFTI', fti)
fti.lookupSchema()
transaction.commit()
class TestBaseBehavior(IntegrationTestCase):
"""Test the base behavior with the help of businesscase dossier.
"""

@browsing
def test_base_behavior(self, browser):
browser.login().open(self.portal)
self.login(self.regular_user, browser=browser)

factoriesmenu.add('OpenGeverBaseFTI')
browser.open(self.leaf_repofolder)
factoriesmenu.add(u'Business Case Dossier')
browser.fill({'Title': 'Foo', 'Description': 'Bar'})
browser.click_on('Save')

self.assertEquals(
'http://nohost/plone/opengeverbasefti/view', browser.url)

obj = self.portal.opengeverbasefti
self.assertEquals('Foo', obj.Title())
self.assertEquals('Bar', obj.Description())
dossier = browser.context
self.assertEquals('Foo', dossier.Title())
self.assertEquals('Bar', dossier.Description())

@browsing
def test_base_behavior_uses_common_fieldset(self, browser):
browser.login().open(self.portal)
self.login(self.regular_user, browser=browser)

factoriesmenu.add('OpenGeverBaseFTI')
browser.fill({'Title': 'Foo', 'Description': 'Bar'})
browser.click_on('Save')
browser.open(self.leaf_repofolder)
factoriesmenu.add(u'Business Case Dossier')

common_fieldset = browser.css('fieldset').first
self.assertEquals(['Common'], common_fieldset.css('legend').text)

self.assertEquals(['Common'], browser.css('fieldset legend').text)
self.assertIn('Title', common_fieldset.css('label').text)
self.assertIn('Description', common_fieldset.css('label').text)
31 changes: 14 additions & 17 deletions opengever/base/tests/test_breadcrumb_by_uid.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,31 @@
from ftw.builder import Builder
from ftw.builder import create
from opengever.testing import FunctionalTestCase
from opengever.testing import IntegrationTestCase
from plone.uuid.interfaces import IUUID


class TestBreadcrumbByUIDView(FunctionalTestCase):
class TestBreadcrumbByUIDView(IntegrationTestCase):

def setUp(self):
super(TestBreadcrumbByUIDView, self).setUp()

self.root = create(Builder('repository_root').titled(u'Repository'))
self.repo = create(Builder('repository')
.within(self.root)
.titled(u'Testposition'))
self.dossier = create(Builder('dossier')
.within(self.repo)
.titled(u'Dossier 1'))

self.view = self.portal.restrictedTraverse('breadcrumb_by_uid')

def test_resolve_dossier(self):
self.login(self.regular_user)

self.portal.REQUEST['ploneuid'] = IUUID(self.dossier)

view = self.portal.restrictedTraverse('breadcrumb_by_uid')
self.assertEquals('Repository > 1. Testposition > Dossier 1', view())
self.assertEquals(
'Ordnungssystem > 1. F\xc3\xbchrung > 1.1. Vertr\xc3\xa4ge '
'und Vereinbarungen > Vertr\xc3\xa4ge mit der kantonalen '
'Finanzverwaltung',
view())

def test_raise_attributerror_if_no_uid_is_provided(self):
self.login(self.regular_user)

with self.assertRaises(AttributeError):
self.portal.restrictedTraverse('breadcrumb_by_uid')()

def test_raise_attributerror_if_uid_is_unkown(self):
self.login(self.regular_user)

self.portal.REQUEST['ploneuid'] = 'doesnotexists'
view = self.portal.restrictedTraverse('breadcrumb_by_uid')
with self.assertRaises(AttributeError):
Expand Down
15 changes: 11 additions & 4 deletions opengever/base/tests/test_casauth.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from ftw.builder import Builder
from ftw.builder import create
from opengever.base.casauth import get_cas_server_url
from opengever.base.casauth import get_cluster_base_url
from opengever.base.casauth import get_gever_portal_url
from opengever.ogds.base.utils import get_current_admin_unit
from opengever.testing import FunctionalTestCase
from opengever.testing import IntegrationTestCase
from plone.app.testing import applyProfile


class TestClusterBaseURL(FunctionalTestCase):
class TestClusterBaseURL(IntegrationTestCase):

def test_is_equal_to_public_url_for_single_admin_unit_setup(self):
admin_unit = get_current_admin_unit()
Expand All @@ -19,6 +21,11 @@ def test_is_equal_to_public_url_for_single_admin_unit_setup(self):
'http://lab.onegovgever.ch/', get_cluster_base_url())

def test_is_different_from_public_url_for_multi_admin_unit_setup(self):
create(Builder('admin_unit')
.having(title=u'Ratzskanzlei',
unit_id=u'rk',
public_url='http://dev.onegovgever.ch/rk'))

admin_unit = get_current_admin_unit()
# For setups with multiple admin units, an admin unit's public_url
# ends with the admin unit ID
Expand All @@ -30,7 +37,7 @@ def test_is_different_from_public_url_for_multi_admin_unit_setup(self):
'http://dev.onegovgever.ch/', get_cluster_base_url())


class TestCASServerURL(FunctionalTestCase):
class TestCASServerURL(IntegrationTestCase):

def test_cas_plugin_server_url_is_based_on_public_url(self):
get_current_admin_unit().public_url = 'http://example.com/foobar'
Expand All @@ -51,7 +58,7 @@ def test_trailing_slashes_are_stripped(self):
self.assertEquals('http://example.com/portal', get_cas_server_url())


class TestGEVERPortalURL(FunctionalTestCase):
class TestGEVERPortalURL(IntegrationTestCase):

def test_gever_portal_url_is_based_on_cluster_url(self):
# Cluster base URL is equal to admin unit's public_url *for now*
Expand Down
Loading

0 comments on commit 962af68

Please sign in to comment.