def _isFCKEditor(self, html_text, field_id, text_content): """ Tries to find in the HTML page string portions which show that text content is displayed using FCKEditor for the given field_id html_text -- the HTML string to analyze field_id -- the id of the field in the form text_content -- the embedded text content """ html_text = to_utf8(html_text) match_string1 = "var oFCKeditor = new FCKeditor('field_%s');" % field_id match_string2 = "oFCKeditor.Value = '%s';" % ('\\n'.join( text_content.splitlines())) if html_text.find(match_string1) == -1: print html_text print match_string1 return False if html_text.find(match_string2) == -1: print html_text print match_string2 return False return True
def translate_by_zpt(self, domain, *words): zpt_template = """ <tal:ommit xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n:domain="%s"> <tal:ommit repeat="word options/words" content="word" i18n:translate="">Word</tal:ommit> </tal:ommit> """ % domain self.myzpt.pt_edit(zpt_template, 'text/html') results = to_utf8(self.myzpt(words=words)).split() return results
def _isTextAreaEditor(self, html_text, field_id, text_content): """ Tries to find in the HTML page string portions which show that text content is displayed using TextArea for the given field_id html_text -- the HTML string to analyze field_id -- the id of the field in the form text_content -- the embedded text content """ html_text = to_utf8(html_text) match_string = """name="field_%s" >\n%s</textarea>""" % (field_id, text_content) if html_text.find(match_string) == -1: print html_text print match_string return False return True
def _isReadOnlyEditor(self, html_text, document): """ Tries to find in the HTML page string portions which show that text content is displayed in read only mode with 'page' CSS class in a <div> html_text -- the HTML string to analyze document -- the document which content is displayed in read only mode """ html_text = to_utf8(html_text) text_content = document.asStrippedHTML() match_string1 = """<div class="input"><div class="page" >\n%s</div></div>""" % text_content match_string2 = """<div class="field page""" if html_text.find(match_string1) == -1: print html_text print match_string1 return False if html_text.find(match_string2) == -1: print html_text print match_string2 return False return True
def _isFCKEditor(self, html_text, field_id, text_content): """ Tries to find in the HTML page string portions which show that text content is displayed using FCKEditor for the given field_id html_text -- the HTML string to analyze field_id -- the id of the field in the form text_content -- the embedded text content """ html_text = to_utf8(html_text) match_string1 = "var oFCKeditor = new FCKeditor('field_%s');" % field_id match_string2 = "oFCKeditor.Value = '%s';" % ('\\n'.join(text_content.splitlines())) if html_text.find(match_string1) == -1: print html_text print match_string1 return False if html_text.find(match_string2) == -1: print html_text print match_string2 return False return True
def testContentTranslation(self): """ Make sure that translatable properties can have content translation into the document and read/write translation text by special accessors. """ portal = self.portal person = portal.person_module.newContent(id='yusei', portal_type='Person', first_name='Yusei', last_name='Tahara') portal.person_module.newContent(id='tarou', portal_type='Person', first_name='Tarou', last_name='Suzuki') portal.person_module.newContent(id='john', portal_type='Person', first_name='John', last_name='Smith') transaction.commit() self.tic() self.assertEqual(getattr(person, 'setJaKanaTranslatedFirstName', False), False) self.assertEqual(getattr(person, 'getJaKanaTranslatedFirstName', False), False) self.assert_(getattr(person, 'getEnTranslatedFirstName', False)) self.assert_(getattr(person, 'getEnTranslatedFirstName', False)) ## # Add custom local.language ## portal.Localizer._add_user_defined_language('Japanese Kana', 'ja-kana') portal.Localizer.add_language('ja-kana') transaction.commit() self.tic() self.assert_(getattr(person, 'setJaKanaTranslatedFirstName', False)) self.assert_(getattr(person, 'getJaKanaTranslatedFirstName', False)) self.assert_(getattr(person, 'hasJaKanaTranslatedFirstName', False)) self.assert_(not person.hasJaKanaTranslatedFirstName()) # if there is no translation, original value is returned. self.assertEqual('Yusei', person.getTranslatedFirstName()) self.assertEqual('Yusei Tahara', person.getTranslatedTitle()) self.assertEqual('Yusei', person.getJaKanaTranslatedFirstName()) # if no_original_value parameter is true, an empty string is returned. self.assertEqual('', person.getTranslatedFirstName(no_original_value=True)) self.assertEqual('', person.getTranslatedTitle(no_original_value=True)) self.assertEqual('', person.getJaKanaTranslatedFirstName(no_original_value=True)) person.setJaKanaTranslatedFirstName('タハラ') person.setJaKanaTranslatedLastName('ユウセイ') self.assert_(person.hasJaKanaTranslatedFirstName()) transaction.commit() self.tic() self.assert_('タハラ' in to_utf8(person.Base_viewContentTranslation())) self.assert_('ユウセイ' in to_utf8(person.Base_viewContentTranslation())) self.assertEqual(person.getJaKanaTranslatedFirstName(), 'タハラ') self.assertEqual(person.getJaKanaTranslatedLastName(), 'ユウセイ') self.assertEqual(person.getTranslatedTitle(language='ja-kana'), 'タハラ ユウセイ') # check with acquisition self.assertEquals(person.getAddress(), None) person.setDefaultAddressStreetAddress('Taito-ku Tokyo') self.assertEquals(person.getDefaultAddressStreetAddress(), 'Taito-ku Tokyo') person.setDefaultAddressJaKanaTranslatedStreetAddress('東京都 台東区') self.assertEquals(person.getDefaultAddressJaKanaTranslatedStreetAddress(), '東京都 台東区') self.assertEquals(person.getDefaultAddressTranslatedStreetAddress(language='ja-kana'), '東京都 台東区') # check acquired target address = person.getDefaultAddress() self.assertEquals(address.getStreetAddress(), 'Taito-ku Tokyo') self.assertEquals(address.getJaKanaTranslatedStreetAddress(), '東京都 台東区') self.assertEquals(address.getTranslatedStreetAddress(language='ja-kana'), '東京都 台東区')
def testContentTranslation(self): """ Make sure that translatable properties can have content translation into the document and read/write translation text by special accessors. """ portal = self.portal person = portal.person_module.newContent(id='yusei', portal_type='Person', first_name='Yusei', last_name='Tahara') portal.person_module.newContent(id='tarou', portal_type='Person', first_name='Tarou', last_name='Suzuki') portal.person_module.newContent(id='john', portal_type='Person', first_name='John', last_name='Smith') self.tic() self.assertEqual(getattr(person, 'setJaKanaTranslatedFirstName', False), False) self.assertEqual(getattr(person, 'getJaKanaTranslatedFirstName', False), False) self.assert_(getattr(person, 'getEnTranslatedFirstName', False)) self.assert_(getattr(person, 'getEnTranslatedFirstName', False)) ## # Add custom local.language ## portal.Localizer._add_user_defined_language('Japanese Kana', 'ja-kana') portal.Localizer.add_language('ja-kana') self.tic() self.assert_(getattr(person, 'setJaKanaTranslatedFirstName', False)) self.assert_(getattr(person, 'getJaKanaTranslatedFirstName', False)) self.assert_(getattr(person, 'hasJaKanaTranslatedFirstName', False)) self.assert_(not person.hasJaKanaTranslatedFirstName()) # if there is no translation, original value is returned. self.assertEqual('Yusei', person.getTranslatedFirstName()) self.assertEqual('Yusei Tahara', person.getTranslatedTitle()) self.assertEqual('Yusei', person.getJaKanaTranslatedFirstName()) # if no_original_value parameter is true, an empty string is returned. self.assertEqual('', person.getTranslatedFirstName(no_original_value=True)) self.assertEqual('', person.getTranslatedTitle(no_original_value=True)) self.assertEqual('', person.getJaKanaTranslatedFirstName(no_original_value=True)) person.setJaKanaTranslatedFirstName('タハラ') person.setJaKanaTranslatedLastName('ユウセイ') self.assert_(person.hasJaKanaTranslatedFirstName()) self.tic() self.assert_('タハラ' in to_utf8(person.Base_viewContentTranslation())) self.assert_('ユウセイ' in to_utf8(person.Base_viewContentTranslation())) self.assertEqual(person.getJaKanaTranslatedFirstName(), 'タハラ') self.assertEqual(person.getJaKanaTranslatedLastName(), 'ユウセイ') self.assertEqual(person.getTranslatedTitle(language='ja-kana'), 'タハラ ユウセイ') # check with acquisition self.assertEqual(person.getAddress(), None) person.setDefaultAddressStreetAddress('Taito-ku Tokyo') self.assertEqual(person.getDefaultAddressStreetAddress(), 'Taito-ku Tokyo') person.setDefaultAddressJaKanaTranslatedStreetAddress('東京都 台東区') self.assertEqual(person.getDefaultAddressJaKanaTranslatedStreetAddress(), '東京都 台東区') self.assertEqual(person.getDefaultAddressTranslatedStreetAddress(language='ja-kana'), '東京都 台東区') # check acquired target address = person.getDefaultAddress() self.assertEqual(address.getStreetAddress(), 'Taito-ku Tokyo') self.assertEqual(address.getJaKanaTranslatedStreetAddress(), '東京都 台東区') self.assertEqual(address.getTranslatedStreetAddress(language='ja-kana'), '東京都 台東区')