def test_node_view_block_static_i18n(self): """ Test static block for i18n front view Change in v0.2: require block for each language :return: None """ translation.activate(settings.LANGUAGE_CODE) response = assert_front(self, reverse('ninecms:index')) for i in range(0, 3): self.assertContains(response, '<div class="body">1st lang ' + str(i) + ' page.</div>', html=True) if settings.I18N_URLS: # pragma: nocover self.assertNotContains(response, '<div class="body">2nd lang ' + str(i) + ' page.</div>', html=True) translation.activate(self.second_lang) response = assert_front(self, reverse('ninecms:index'), self.second_lang) for i in range(0, 3): if settings.I18N_URLS: # pragma: nocover self.assertNotContains(response, '<div class="body">1st lang ' + str(i) + ' page.</div>', html=True) self.assertContains(response, '<div class="body">2nd lang ' + str(i) + ' page.</div>', html=True)
def test_node_view_with_front_i18n(self): """ Test front page with multiple languages :return: None """ translation.activate(settings.LANGUAGE_CODE) assert_front(self, reverse('ninecms:index')) # translation.activate needs to happen before reverse for non-default language translation.activate(self.second_lang) assert_front(self, reverse('ninecms:index'), self.second_lang)
def test_node_view_block_menu_i18n(self): """ Test menu block for i18n front view :return: None """ translation.activate(settings.LANGUAGE_CODE) response = assert_front(self, reverse('ninecms:index')) assert_menu(self, response) translation.activate(self.second_lang) response = assert_front(self, reverse('ninecms:index'), self.second_lang) assert_menu(self, response, self.second_lang)
def test_search_view(self): """ Test that search form renders properly :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains( response, '<form id="searchform" action="/search/" method="get">')
def test_node_view_block_language(self): """ Test block for language menu :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains( response, '<ul class="nav navbar-nav navbar-right language menu')
def test_node_view_terms_signals(self): """ Test that terms are rendered properly in block Test that signals work properly :return: None """ response = assert_front(self, reverse('ninecms:index')) expected = '<li>Terms<ul><li>Tags<ul class="children"><li>General</li></ul></li></ul></li>' self.assertContains(response, expected, html=True)
def test_contact_view(self): """ Test that view renders properly :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains( response, '<form action="' + reverse('ninecms:contact') + '" method="post"')
def test_logout_view(self): """ Test that logout form renders properly :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertNotContains(response, '<form action="' + reverse('ninecms:login') + '" method="post">') self.assertNotContains(response, '<li><a href="#">Login</a></li>') self.assertContains(response, '<form action="' + reverse('ninecms:logout') + '" method="post">')
def test_node_view_block_static(self): """ Test static block for front view :return: None """ response = assert_front(self, reverse('ninecms:index')) for i in range(1, 4): self.assertContains(response, '<div class="body">About ' + str(i) + ' page.</div>') self.assertNotContains(response, '<div class="body">About 4 page.</div>')
def test_node_view_with_front_title_not_repeating(self): """ Test that a front page does not repeat the title if it is the site title :return: None """ title = settings.SITE_NAME create_front('/', '', title) response = assert_front(self, reverse('ninecms:index'), '', title) self.assertContains(response, '<title>' + title + '</title>', html=True) self.assertNotContains(response, '<title>' + title + ' | ' + title + '</title>', html=True)
def test_node_view_block_menu(self): """ Test menu block for front view :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains(response, '<a href="/">') self.assertContains(response, '<a href="/about/">') self.assertContains(response, '<a href="/about/#team">') self.assertContains(response, '<a href="http://google.com/">') self.assertContains(response, '<a href="#bookmark">')
def test_node_view_block_static(self): """ Test static block for front view :return: None """ response = assert_front(self, reverse('ninecms:index')) for i in range(1, 4): self.assertContains( response, '<div class="body">About ' + str(i) + ' page.</div>') self.assertNotContains(response, '<div class="body">About 4 page.</div>')
def test_node_view_block_menu_root_disabled(self): """ Test menu block for front view if root is disabled :return: None """ self.menu.disabled = True self.menu.save() response = assert_front(self, reverse('ninecms:index')) self.assertNotContains(response, '<a href="/">Front</a>', html=True) self.assertNotContains(response, '<a href="/about/">About</a>', html=True) self.menu.disabled = False self.menu.save()
def test_content_view_alias_redirect(self): """ Test view redirect from alias :return: None """ Node.objects.get_or_create(page_type=self.node_rev_basic.node.page_type, language=settings.LANGUAGE_CODE, title='redirect', user=create_user(), alias='redirect', link='/', redirect=True) response = assert_front(self, '/redirect/') # first redirect is /redirect/ to /en/redirect/, last is to front # depending on settings.LANGUAGES, therefore not using assertRedirects self.assertEqual('/' in response.redirect_chain[-1][0], True) self.assertEqual(response.redirect_chain[-1][1], 301)
def test_node_view_block_menu_item_disabled(self): """ Test menu block for front view if item is disabled :return: None """ menu_item_disabled = self.menu.children.last() menu_item_disabled.disabled = True # saving parent does not save children menu_item_disabled.save() response = assert_front(self, reverse('ninecms:index')) self.assertContains(response, '<a href="/">') self.assertNotContains(response, '<a href="/about">') menu_item_disabled.disabled = False menu_item_disabled.save()
def test_node_view_with_front(self): """ Test node view for front page Test simple Test front if /// is asked (TestCase cuts trailing slashes anyway though) Test front if /%2f/ is asked :return: """ assert_front(self, reverse('ninecms:index')) assert_front(self, '///') assert_front(self, '/%2f/')
def test_content_view_alias_redirect(self): """ Test view redirect from alias :return: None """ Node.objects.get_or_create( page_type=self.node_rev_basic.node.page_type, language=settings.LANGUAGE_CODE, title='redirect', user=create_user(), alias='redirect', link='/', redirect=True) response = assert_front(self, '/redirect/') # first redirect is /redirect/ to /en/redirect/, last is to front # depending on settings.LANGUAGES, therefore not using assertRedirects self.assertEqual('/' in response.redirect_chain[-1][0], True) self.assertEqual(response.redirect_chain[-1][1], 301)
def test_node_view_block_language(self): """ Test block for language menu :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains(response, '<ul class="nav navbar-nav navbar-right language menu')
def test_contact_view(self): """ Test that view renders properly :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains(response, '<form action="' + reverse('ninecms:contact') + '" method="post"')
def test_search_view(self): """ Test that search form renders properly :return: None """ response = assert_front(self, reverse('ninecms:index')) self.assertContains(response, '<form id="searchform" action="/search/" method="get">')