Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/ftesting.zcml
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/ftesting.zcml	(revision 8852)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/ftesting.zcml	(revision 8852)
@@ -0,0 +1,91 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   xmlns:kofa="http://namespaces.waeup.org/kofa"
+   i18n_domain="kofacustom.nigeria"
+   package="kofacustom.nigeria"
+   >
+
+  <include package="grok" />
+  <includeOverrides package="kofacustom.nigeria" />
+  <include package="kofacustom.nigeria" file="mail.zcml" />
+
+  <!-- Where should the datacenter reside by default?
+
+       The path is relative to the `package` defined in top
+       `configure` directive.
+  -->
+  <kofa:datacenter
+      path="../../../parts/test/datacenter" />
+
+
+  <!-- Typical functional testing security setup -->
+  <securityPolicy
+      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      />
+
+
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User"
+      />
+  <unauthenticatedGroup
+      id="zope.Anybody"
+      title="Unauthenticated Users"
+      />
+  <authenticatedGroup
+      id="zope.Authenticated"
+      title="Authenticated Users"
+      />
+  <everybodyGroup
+      id="zope.Everybody"
+      title="All Users"
+      />
+
+
+  <!-- grant
+      permission="zope.View"
+      principal="zope.Anybody"
+      / -->
+
+  <grant
+      permission="zope.app.dublincore.view"
+      principal="zope.Anybody" />
+  <grant
+      permission="zope.View"
+      principal="zope.Authenticated"
+      />
+  <grant
+      permission="zope.app.dublincore.view"
+      principal="zope.Authenticated"
+      />
+  <grant
+      permission="waeup.Public"
+      principal="zope.Everybody"
+      />
+  <grant
+      permission="waeup.Anonymous"
+      principal="zope.Anybody"
+      />
+
+  <principal
+      id="zope.mgr"
+      title="Manager"
+      login="mgr"
+      password="mgrpw"
+      />
+
+  <role
+      id="zope.Manager"
+      title="Site Manager"
+      />
+
+  <grantAll
+      role="zope.Manager"
+      />
+
+  <grant
+      role="zope.Manager"
+      principal="zope.mgr"
+      />
+
+</configure>
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/testing.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/testing.py	(revision 8852)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/testing.py	(revision 8852)
@@ -0,0 +1,29 @@
+## $Id$
+##
+## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""Testing support for :mod:`waeup.kofa`.
+"""
+import os.path
+import kofacustom.nigeria
+from zope.app.testing.functional import ZCMLLayer
+from waeup.kofa.testing import FunctionalTestCase
+
+# Some funcional layer that groks kofacustom.nigeria.
+ftesting_zcml = os.path.join(
+    os.path.dirname(kofacustom.nigeria.__file__), 'ftesting.zcml')
+FunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'FunctionalLayer',
+                            allow_teardown=True)
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/__init__.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/__init__.py	(revision 8852)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/__init__.py	(revision 8852)
@@ -0,0 +1,1 @@
+# make this a package.
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/test_foo.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/test_foo.py	(revision 8852)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/tests/test_foo.py	(revision 8852)
@@ -0,0 +1,27 @@
+# Make sure that test setup basically works.
+# THIS FILE CAN BE REMOVED.
+
+from kofacustom.nigeria.testing import FunctionalTestCase, FunctionalLayer
+
+class FooTest(FunctionalTestCase):
+
+    layer = FunctionalLayer
+
+    def test_foo(self):
+        # we can access registered components
+        from zope.component import getUtility
+        from waeup.kofa.applicants.interfaces import IApplicantsUtils
+        from kofacustom.nigeria.applicants.utils import NigeriaApplicantsUtils
+        result = getUtility(IApplicantsUtils)
+        self.assertTrue(isinstance(result, NigeriaApplicantsUtils))
+        return
+
+    def test_bar(self):
+        # we can access browser contents
+        from waeup.kofa.app import University
+        self.getRootFolder()['app'] = University()
+        from zope.testbrowser.testing import Browser
+        br = Browser()
+        br.open('http://localhost/app/')
+        self.assertTrue('WAeUP.Kofa' in br.contents)
+        return
