def test_render_mobile_override(self): """ Render a document with mobile overrides enabled. """ self.setDiscriminateMode("mobile") self.create_doc() doc = self.portal.doc doc.setTitle("Not reached") # This title should not be visible in mobile mode overrider = IOverrider(doc) storage = IOverrideStorage(doc) storage.enabled_overrides = ["Title"] storage.Title = u"Foobar" self.portal.portal_workflow.doActionFor(doc, "submit") self.portal.portal_workflow.doActionFor(doc, "publish") browser = self.browser browser.open(self.portal.doc.absolute_url()) html = browser.contents self.assertTrue(MOBILE_HTML_MARKER in html, "Got page:" + html) assert "Foobar" in html
def test_has_overrides(self): """ Document object overrides are enabled by default """ self.create_doc() doc = self.portal.doc overrider = IOverrider(doc) assert overrider != None assert overrider.schema != None self.assertEqual(overrider._getOverrideFieldNames(), ["Title", "Description", "getText"]) # Set one override enabled and check it is read properly storage = IOverrideStorage(doc) storage.enabled_overrides = ["Title"] self.assertEqual(overrider._isOverrideEnabled("Title", storage), True) self.assertEqual(overrider._isOverrideEnabled("Description", storage), False) # Set overriden title storage.Title = u"Foobar" # Call title accessor by emulator IOverrider steps # and see each microstep completes self.assertTrue(overrider._isOverride("Title")) storage = IOverrideStorage(self.portal.doc) self.assertTrue(overrider._isOverrideEnabled("Title", storage)) self.assertEqual(overrider._getOverrideOrOrignal("Title")(), u"Foobar") assert overrider.Title() == u"Foobar"
def test_helper_view_web(self): """ See that we get proper proxy object through helper view. """ self.setDiscriminateMode(MobileRequestType.WEB) self.create_doc() doc = self.portal.doc doc.setTitle("Not reached") overrider = IOverrider(doc) storage = IOverrideStorage(doc) storage.enabled_overrides = ["Title"] storage.Title = u"Foobar" helper = doc.restrictedTraverse("multichannel_overrider") context = helper() # Return mobile proxy object with overriden values # In web mode, you dont get override self.assertEqual(context.Title(), "Not reached")