From 75401212cacf8a8922acfd49856518c012326284 Mon Sep 17 00:00:00 2001 From: idgserpro Date: Thu, 23 Apr 2015 12:18:42 -0300 Subject: [PATCH 1/7] Depende de brasil.gov.portal. O brasil.gov.temas depende de brasil.gov.portal como pode ser visto em: https://github.com/plonegovbr/brasil.gov.temas/blob/master/src/brasil/gov/temas/configure.zcml#L42 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 467966ef..060f3dfa 100644 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ include_package_data=True, zip_safe=False, install_requires=[ + 'brasil.gov.portal', 'Products.CMFPlone >=4.3', 'setuptools', 'plone.app.themingplugins', @@ -51,7 +52,6 @@ extras_require={ 'test': [ 'plone.app.testing', - 'brasil.gov.portal', ] }, entry_points=""" From 2fa9f63542f6fa1d62a88bef88f12fabb6aca552 Mon Sep 17 00:00:00 2001 From: idgserpro Date: Fri, 24 Apr 2015 17:54:47 -0300 Subject: [PATCH 2/7] =?UTF-8?q?Pinando=20vers=C3=B5es=20de=20depend=C3=AAn?= =?UTF-8?q?cias=20para=20que=20o=20'bin/instance=20fg'=20funcione.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - plone.app.portlets 2.5a1 causa um ImportError. Foi utilizado o 2.4.8 - Atualiza zope.configuration para 3.8.1. - plone.app.theming 1.1.3 causa um ConfigurationExecutionError. Foi utilizado o 1.1.1 --- buildout.cfg | 5 +++++ travis.cfg | 5 +++++ versions.cfg | 9 +++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/buildout.cfg b/buildout.cfg index e68732a9..3f57b8eb 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -27,3 +27,8 @@ eggs = i18ndude [omelette] recipe = collective.recipe.omelette eggs = ${test:eggs} + +[versions] +# Necessário colocar o pacote com versão vazia para que outras versões no +# buildout-cache não sobrescrevam o próprio pacote. +brasil.gov.temas = diff --git a/travis.cfg b/travis.cfg index ee7254bc..074d538d 100644 --- a/travis.cfg +++ b/travis.cfg @@ -14,3 +14,8 @@ parts += [code-analysis] directory = src + +[versions] +# Necessário colocar o pacote com versão vazia para que outras versões no +# buildout-cache não sobrescrevam o próprio pacote. +brasil.gov.temas = diff --git a/versions.cfg b/versions.cfg index ded6fe8e..7560d506 100644 --- a/versions.cfg +++ b/versions.cfg @@ -1,10 +1,10 @@ [versions] # XXX: needed by plone.app.event in brasil.gov.portal -plone.app.portlets = 2.5a1 +plone.app.portlets = 2.4.8 # XXX: needed by brasil.gov.agenda in brasil.gov.portal plone.dexterity = 2.2.3 # XXX: needed by z3c.unconfigure in brasil.gov.portal -zope.configuration = 3.8.0 +zope.configuration = 3.8.1 # XXX: Versão 3.3.1 de collective.js.bootstrap passa a pedir como dependência # plone.app.jquery>=1.8.3, dando conflito no release do Plone 4.3.x. @@ -20,3 +20,8 @@ python-oembed = 0.2.1 # XXX: collective.nitf 1.0b5 pede o plone.app.querystring>=1.2.5. # Discussão em: https://github.com/plonegovbr/brasil.gov.tiles/issues/126 plone.app.querystring = 1.2.5 + +# XXX: plone.app.theming = 1.1.3 causa erro: +# ConfigurationExecutionError: : +# (, 'plone.app.controlpanel.Themes') +plone.app.theming = 1.1.1 From d856328c0d545baad7e1031d43d1c78a8f83bf05 Mon Sep 17 00:00:00 2001 From: idgserpro Date: Thu, 30 Apr 2015 15:09:26 -0300 Subject: [PATCH 3/7] =?UTF-8?q?Corrigi=20erro=20em=20que=20a=20tela=20de?= =?UTF-8?q?=20'Prefer=C3=AAncias=20Pessoais'=20aparecia=20vazia.=20(fixes?= =?UTF-8?q?=20#113)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O template do 'Preferências Pessoais' é diferente dos demais templates do plone. Assim a regra que existia antes, não pegava os elementos no template do 'Preferências Pessoais'. Foram criadas regras para pegar os elementos que a regra original não pegava. Também foi adicionado o id 'main-content' na div do tema em que o conteúdo deve ser substituido, para ser possível referênciar essa div pelo id em vez da posição. --- CHANGES.rst | 8 +- setup.py | 2 +- .../gov/temas/tests/tests_funcionais.py | 118 ++++++++++++++++++ .../gov/temas/themes/amarelo/index.html | 2 +- src/brasil/gov/temas/themes/amarelo/rules.xml | 12 +- src/brasil/gov/temas/themes/azul/index.html | 2 +- src/brasil/gov/temas/themes/azul/rules.xml | 12 +- src/brasil/gov/temas/themes/branco/index.html | 2 +- src/brasil/gov/temas/themes/branco/rules.xml | 12 +- src/brasil/gov/temas/themes/verde/index.html | 2 +- src/brasil/gov/temas/themes/verde/rules.xml | 12 +- 11 files changed, 172 insertions(+), 12 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index afe5bd2d..58228172 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,12 +4,13 @@ Histórico de Alterações 1.0.8 (unreleased) ^^^^^^^^^^^^^^^^^^ -- Adicionadas regras para inserir as traduções das viewlets de copyright do +* Corrigi erro em que a tela de 'Preferências Pessoais' aparecia vazia. (closes `#113`_) + [idgserpro] +* Adicionadas regras para inserir as traduções das viewlets de copyright do Plone, "Voltar para o topo" e seção de acessibilidade de brasil.gov.portal no tema. [idgserpro] - -- Adicionada estrutura nas regras de Diazo permitindo inserção de links de +* Adicionada estrutura nas regras de Diazo permitindo inserção de links de línguas como actions em "site_actions": basta criar com o mesmo id hoje presente nas regras css (language-en e language-es). Dessa forma, evita-se customização do tema apenas para inserção desses links. @@ -246,3 +247,4 @@ Histórico de Alterações .. _`#101`: https://github.com/plonegovbr/brasil.gov.temas/issues/101 .. _`#103`: https://github.com/plonegovbr/brasil.gov.temas/issues/103 .. _`#106`: https://github.com/plonegovbr/brasil.gov.temas/issues/106 +.. _`#113`: https://github.com/plonegovbr/brasil.gov.temas/issues/113 diff --git a/setup.py b/setup.py index 060f3dfa..a63afcfa 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import find_packages from setuptools import setup -version = '1.0.8.dev2' +version = '1.0.8.dev3' long_description = ( open('README.rst').read() + '\n' + open('CONTRIBUTORS.rst').read() + '\n' + diff --git a/src/brasil/gov/temas/tests/tests_funcionais.py b/src/brasil/gov/temas/tests/tests_funcionais.py index b33bb157..c86a3e4c 100644 --- a/src/brasil/gov/temas/tests/tests_funcionais.py +++ b/src/brasil/gov/temas/tests/tests_funcionais.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- from brasil.gov.temas.testing import FUNCTIONAL_TESTING +from plone.app.testing import SITE_OWNER_NAME +from plone.app.testing import SITE_OWNER_PASSWORD from plone.app.theming.interfaces import IThemeSettings from plone.app.theming.utils import applyTheme from plone.app.theming.utils import getTheme @@ -7,6 +9,7 @@ from plone.testing.z2 import Browser from zope.component import getUtility +import base64 import Globals import unittest @@ -22,6 +25,17 @@ def setUp(self): import transaction transaction.commit() + def login_browser(self, browser): + """Autentica usuário de teste no browser""" + browser.handleErrors = False + basic_auth = 'Basic {0}'.format( + base64.encodestring('{0}:{1}'.format( + SITE_OWNER_NAME, + SITE_OWNER_PASSWORD) + ) + ) + browser.addHeader('Authorization', basic_auth) + def test_tema_verde(self): theme = getTheme('verde') applyTheme(theme) @@ -81,3 +95,107 @@ def test_tema_azul(self): # Removido logo do governo federal self.assertIn("brasil.png", browser.contents) + + def test_tema_verde_autenticado(self): + theme = getTheme('verde') + applyTheme(theme) + self.settings.enabled = True + import transaction + transaction.commit() + browser = Browser(self.layer['app']) + self.login_browser(browser) + + # Testa se elementos do dashboard aparecem. + browser.open('{0}/dashboard'.format(self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('dashboard', browser.contents) + + # Testa se elementos da 'Informação Pessoal' aparecem. + browser.open('{0}/@@user-information?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Change your personal information', browser.contents) + + # Testa se elementos da 'Preferências Pessoais' aparecem. + browser.open('{0}/@@user-preferences?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Your personal settings', browser.contents) + + def test_tema_amarelo_autenticado(self): + theme = getTheme('amarelo') + applyTheme(theme) + self.settings.enabled = True + import transaction + transaction.commit() + browser = Browser(self.layer['app']) + self.login_browser(browser) + + # Testa se elementos do dashboard aparecem. + browser.open('{0}/dashboard'.format(self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('dashboard', browser.contents) + + # Testa se elementos da 'Informação Pessoal' aparecem. + browser.open('{0}/@@user-information?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Change your personal information', browser.contents) + + # Testa se elementos da 'Preferências Pessoais' aparecem. + browser.open('{0}/@@user-preferences?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Your personal settings', browser.contents) + + def test_tema_branco_autenticado(self): + theme = getTheme('branco') + applyTheme(theme) + self.settings.enabled = True + import transaction + transaction.commit() + browser = Browser(self.layer['app']) + self.login_browser(browser) + + # Testa se elementos do dashboard aparecem. + browser.open('{0}/dashboard'.format(self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('dashboard', browser.contents) + + # Testa se elementos da 'Informação Pessoal' aparecem. + browser.open('{0}/@@user-information?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Change your personal information', browser.contents) + + # Testa se elementos da 'Preferências Pessoais' aparecem. + browser.open('{0}/@@user-preferences?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Your personal settings', browser.contents) + + def test_tema_azul_autenticado(self): + theme = getTheme('azul') + applyTheme(theme) + self.settings.enabled = True + import transaction + transaction.commit() + browser = Browser(self.layer['app']) + self.login_browser(browser) + + # Testa se elementos do dashboard aparecem. + browser.open('{0}/dashboard'.format(self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('dashboard', browser.contents) + + # Testa se elementos da 'Informação Pessoal' aparecem. + browser.open('{0}/@@user-information?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Change your personal information', browser.contents) + + # Testa se elementos da 'Preferências Pessoais' aparecem. + browser.open('{0}/@@user-preferences?userid=admin'.format( + self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', browser.contents) + self.assertIn('Your personal settings', browser.contents) diff --git a/src/brasil/gov/temas/themes/amarelo/index.html b/src/brasil/gov/temas/themes/amarelo/index.html index d77452ca..2fe571c8 100755 --- a/src/brasil/gov/temas/themes/amarelo/index.html +++ b/src/brasil/gov/temas/themes/amarelo/index.html @@ -304,7 +304,7 @@
-
+
diff --git a/src/brasil/gov/temas/themes/amarelo/rules.xml b/src/brasil/gov/temas/themes/amarelo/rules.xml index b59a193e..a6ff2acb 100755 --- a/src/brasil/gov/temas/themes/amarelo/rules.xml +++ b/src/brasil/gov/temas/themes/amarelo/rules.xml @@ -37,7 +37,17 @@ - + + + + + + + diff --git a/src/brasil/gov/temas/themes/azul/index.html b/src/brasil/gov/temas/themes/azul/index.html index d77452ca..2fe571c8 100755 --- a/src/brasil/gov/temas/themes/azul/index.html +++ b/src/brasil/gov/temas/themes/azul/index.html @@ -304,7 +304,7 @@
-
+
diff --git a/src/brasil/gov/temas/themes/azul/rules.xml b/src/brasil/gov/temas/themes/azul/rules.xml index b59a193e..a6ff2acb 100755 --- a/src/brasil/gov/temas/themes/azul/rules.xml +++ b/src/brasil/gov/temas/themes/azul/rules.xml @@ -37,7 +37,17 @@ - + + + + + + + diff --git a/src/brasil/gov/temas/themes/branco/index.html b/src/brasil/gov/temas/themes/branco/index.html index d77452ca..2fe571c8 100755 --- a/src/brasil/gov/temas/themes/branco/index.html +++ b/src/brasil/gov/temas/themes/branco/index.html @@ -304,7 +304,7 @@
-
+
diff --git a/src/brasil/gov/temas/themes/branco/rules.xml b/src/brasil/gov/temas/themes/branco/rules.xml index b59a193e..a6ff2acb 100755 --- a/src/brasil/gov/temas/themes/branco/rules.xml +++ b/src/brasil/gov/temas/themes/branco/rules.xml @@ -37,7 +37,17 @@ - + + + + + + + diff --git a/src/brasil/gov/temas/themes/verde/index.html b/src/brasil/gov/temas/themes/verde/index.html index d77452ca..2fe571c8 100755 --- a/src/brasil/gov/temas/themes/verde/index.html +++ b/src/brasil/gov/temas/themes/verde/index.html @@ -304,7 +304,7 @@
-
+
diff --git a/src/brasil/gov/temas/themes/verde/rules.xml b/src/brasil/gov/temas/themes/verde/rules.xml index b59a193e..a6ff2acb 100755 --- a/src/brasil/gov/temas/themes/verde/rules.xml +++ b/src/brasil/gov/temas/themes/verde/rules.xml @@ -37,7 +37,17 @@ - + + + + + + + From adfe8c6ea8e1dbefe53f07e06a0eed614a7015a7 Mon Sep 17 00:00:00 2001 From: idgserpro Date: Tue, 2 Jun 2015 09:41:09 -0300 Subject: [PATCH 4/7] Adiciona pasta 'dist' ao .gitignore. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1702fa82..4f5bf329 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ Makefile parts/ src/collective.cover/ var/ +/dist/ From fc1af10186fe504605c2d9c9b459a94e8df1476a Mon Sep 17 00:00:00 2001 From: idgserpro Date: Tue, 2 Jun 2015 09:59:58 -0300 Subject: [PATCH 5/7] Atualiza changelog. --- CHANGES.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 58228172..98fccef7 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,8 @@ Histórico de Alterações 1.0.8 (unreleased) ^^^^^^^^^^^^^^^^^^ -* Corrigi erro em que a tela de 'Preferências Pessoais' aparecia vazia. (closes `#113`_) +* Corrigi erro em que as telas de 'Preferências Pessoais', 'Informação Pessoal' + e 'Painel Pessoal' apareciam vazias. (closes `#113`_) [idgserpro] * Adicionadas regras para inserir as traduções das viewlets de copyright do Plone, "Voltar para o topo" e seção de acessibilidade de brasil.gov.portal From e7220e33a1e1b448994396ee22a0efc1cbd40f5b Mon Sep 17 00:00:00 2001 From: idgserpro Date: Tue, 2 Jun 2015 13:47:38 -0300 Subject: [PATCH 6/7] =?UTF-8?q?Remove=20base64=20da=20autentica=C3=A7?= =?UTF-8?q?=C3=A3o=20dos=20teste.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/brasil/gov/temas/tests/tests_funcionais.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/brasil/gov/temas/tests/tests_funcionais.py b/src/brasil/gov/temas/tests/tests_funcionais.py index c86a3e4c..27f4b966 100644 --- a/src/brasil/gov/temas/tests/tests_funcionais.py +++ b/src/brasil/gov/temas/tests/tests_funcionais.py @@ -9,7 +9,6 @@ from plone.testing.z2 import Browser from zope.component import getUtility -import base64 import Globals import unittest @@ -29,10 +28,7 @@ def login_browser(self, browser): """Autentica usuário de teste no browser""" browser.handleErrors = False basic_auth = 'Basic {0}'.format( - base64.encodestring('{0}:{1}'.format( - SITE_OWNER_NAME, - SITE_OWNER_PASSWORD) - ) + '{0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD) ) browser.addHeader('Authorization', basic_auth) From b00c2d42dc32d1ff14c42d021624d1f3ac34bb89 Mon Sep 17 00:00:00 2001 From: idgserpro Date: Tue, 2 Jun 2015 15:25:28 -0300 Subject: [PATCH 7/7] Refatora testes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona novo Caso de Teste para usuários autenticados. - Remove código duplicado. --- .../gov/temas/tests/tests_funcionais.py | 183 +++++------------- 1 file changed, 50 insertions(+), 133 deletions(-) diff --git a/src/brasil/gov/temas/tests/tests_funcionais.py b/src/brasil/gov/temas/tests/tests_funcionais.py index 27f4b966..7204be4e 100644 --- a/src/brasil/gov/temas/tests/tests_funcionais.py +++ b/src/brasil/gov/temas/tests/tests_funcionais.py @@ -21,177 +21,94 @@ def setUp(self): Globals.DevelopmentMode = True self.portal = self.layer['portal'] self.settings = getUtility(IRegistry).forInterface(IThemeSettings) + self.browser = Browser(self.layer['app']) import transaction transaction.commit() - def login_browser(self, browser): - """Autentica usuário de teste no browser""" - browser.handleErrors = False - basic_auth = 'Basic {0}'.format( - '{0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD) - ) - browser.addHeader('Authorization', basic_auth) - - def test_tema_verde(self): - theme = getTheme('verde') + def base_test(self, cor): + """Teste base dos temas""" + theme = getTheme(cor) applyTheme(theme) self.settings.enabled = True import transaction transaction.commit() - browser = Browser(self.layer['app']) - browser.open(self.portal.absolute_url()) + self.browser.open(self.portal.absolute_url()) # Acesso a Informacao deve estar disponivel - self.assertIn("acesso-a-infornacao.png", browser.contents) + self.assertIn("acesso-a-infornacao.png", self.browser.contents) # Removido logo do governo federal - self.assertIn("brasil.png", browser.contents) - - def test_tema_amarelo(self): - theme = getTheme('amarelo') - applyTheme(theme) - self.settings.enabled = True - import transaction - transaction.commit() - browser = Browser(self.layer['app']) - browser.open(self.portal.absolute_url()) + self.assertIn("brasil.png", self.browser.contents) - # Acesso a Informacao deve estar disponivel - self.assertIn("acesso-a-infornacao.png", browser.contents) + def test_tema_verde(self): + self.base_test('verde') - # Removido logo do governo federal - self.assertIn("brasil.png", browser.contents) + def test_tema_amarelo(self): + self.base_test('amarelo') def test_tema_branco(self): - theme = getTheme('branco') - applyTheme(theme) - self.settings.enabled = True - import transaction - transaction.commit() - browser = Browser(self.layer['app']) - browser.open(self.portal.absolute_url()) - - # Acesso a Informacao deve estar disponivel - self.assertIn("acesso-a-infornacao.png", browser.contents) - - # Removido logo do governo federal - self.assertIn("brasil.png", browser.contents) + self.base_test('branco') def test_tema_azul(self): - theme = getTheme('azul') - applyTheme(theme) - self.settings.enabled = True - import transaction - transaction.commit() - browser = Browser(self.layer['app']) - browser.open(self.portal.absolute_url()) + self.base_test('azul') - # Acesso a Informacao deve estar disponivel - self.assertIn("acesso-a-infornacao.png", browser.contents) - # Removido logo do governo federal - self.assertIn("brasil.png", browser.contents) +class AuthenticatedTestCase(unittest.TestCase): + """Teste funcionais com usuário autenticado""" - def test_tema_verde_autenticado(self): - theme = getTheme('verde') - applyTheme(theme) - self.settings.enabled = True - import transaction - transaction.commit() - browser = Browser(self.layer['app']) - self.login_browser(browser) - - # Testa se elementos do dashboard aparecem. - browser.open('{0}/dashboard'.format(self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('dashboard', browser.contents) - - # Testa se elementos da 'Informação Pessoal' aparecem. - browser.open('{0}/@@user-information?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Change your personal information', browser.contents) - - # Testa se elementos da 'Preferências Pessoais' aparecem. - browser.open('{0}/@@user-preferences?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Your personal settings', browser.contents) + layer = FUNCTIONAL_TESTING - def test_tema_amarelo_autenticado(self): - theme = getTheme('amarelo') - applyTheme(theme) - self.settings.enabled = True + def setUp(self): + Globals.DevelopmentMode = True + self.portal = self.layer['portal'] + self.settings = getUtility(IRegistry).forInterface(IThemeSettings) + self.browser = Browser(self.layer['app']) + self.login_browser() import transaction transaction.commit() - browser = Browser(self.layer['app']) - self.login_browser(browser) - # Testa se elementos do dashboard aparecem. - browser.open('{0}/dashboard'.format(self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('dashboard', browser.contents) - - # Testa se elementos da 'Informação Pessoal' aparecem. - browser.open('{0}/@@user-information?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Change your personal information', browser.contents) - - # Testa se elementos da 'Preferências Pessoais' aparecem. - browser.open('{0}/@@user-preferences?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Your personal settings', browser.contents) + def login_browser(self): + """Autentica usuário de teste no browser""" + self.browser.handleErrors = False + basic_auth = 'Basic {0}'.format( + '{0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD) + ) + self.browser.addHeader('Authorization', basic_auth) - def test_tema_branco_autenticado(self): - theme = getTheme('branco') + def base_test(self, cor): + """Teste base dos temas""" + theme = getTheme(cor) applyTheme(theme) self.settings.enabled = True import transaction transaction.commit() - browser = Browser(self.layer['app']) - self.login_browser(browser) # Testa se elementos do dashboard aparecem. - browser.open('{0}/dashboard'.format(self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('dashboard', browser.contents) + self.browser.open('{0}/dashboard'.format(self.portal.absolute_url())) + self.assertIn('id="kssPortalMessage"', self.browser.contents) + self.assertIn('dashboard', self.browser.contents) # Testa se elementos da 'Informação Pessoal' aparecem. - browser.open('{0}/@@user-information?userid=admin'.format( + self.browser.open('{0}/@@user-information?userid=admin'.format( self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Change your personal information', browser.contents) + self.assertIn('id="kssPortalMessage"', self. browser.contents) + self.assertIn('Change your personal information', + self.browser.contents) # Testa se elementos da 'Preferências Pessoais' aparecem. - browser.open('{0}/@@user-preferences?userid=admin'.format( + self.browser.open('{0}/@@user-preferences?userid=admin'.format( self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Your personal settings', browser.contents) + self.assertIn('id="kssPortalMessage"', self.browser.contents) + self.assertIn('Your personal settings', self.browser.contents) - def test_tema_azul_autenticado(self): - theme = getTheme('azul') - applyTheme(theme) - self.settings.enabled = True - import transaction - transaction.commit() - browser = Browser(self.layer['app']) - self.login_browser(browser) + def test_tema_verde_autenticado(self): + self.base_test('verde') - # Testa se elementos do dashboard aparecem. - browser.open('{0}/dashboard'.format(self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('dashboard', browser.contents) + def test_tema_amarelo_autenticado(self): + self.base_test('amarelo') - # Testa se elementos da 'Informação Pessoal' aparecem. - browser.open('{0}/@@user-information?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Change your personal information', browser.contents) + def test_tema_branco_autenticado(self): + self.base_test('branco') - # Testa se elementos da 'Preferências Pessoais' aparecem. - browser.open('{0}/@@user-preferences?userid=admin'.format( - self.portal.absolute_url())) - self.assertIn('id="kssPortalMessage"', browser.contents) - self.assertIn('Your personal settings', browser.contents) + def test_tema_azul_autenticado(self): + self.base_test('azul')