Pretendo probar en este test la forma de solucionar algunos
problemas por medio de widgets modificados.

Primero las configuraciones de rutina...

	>>> from Products.Five.testbrowser import Browser
	>>> from Products.CMFCore.utils import getToolByName
	>>> from Products.PloneTestCase.setup import portal_owner, \
	...                                          default_user, \
	...                                          default_password
	>>> from icsemantic.langfallback.config import HAS_PLONE3

	>>> browser = Browser()

	>>> portal = self.portal
	>>> folder = self.folder
	>>> portal_url = portal.absolute_url()
	>>> folder_url = self.folder.absolute_url()
	>>> login_url = portal_url + '/login_form'
	>>> logout_url = portal_url + '/logout'

	>>> portal.error_log._ignored_exceptions = ()
	>>> browser.handleErrors = False

	>>> self.setRoles(['Manager', 'Member'])

Now, we must login...
	>>> browser.open(login_url)

	>>> browser.getControl(name='__ac_name').value = portal_owner
	>>> browser.getControl(name='__ac_password').value = default_password
	>>> browser.getControl(name='submit').click()

	>>> member = portal.portal_membership.getAuthenticatedMember()
	>>> member.setMemberProperties({'icsemantic.preferred_languages': ('es', 'en', 'it')})
	>>> member.getProperty('icsemantic.preferred_languages')
	('es', 'en', 'it')

Y configuro los lenguajes disponibles...

	>>> browser.getLink('Site Setup').click()
	>>> if HAS_PLONE3:
	... 	browser.getLink('Language').click()
	... 	lang_control_name='form.available_languages:list'
	... 	def_lang_control_name='form.default_language'
	... else:
	... 	browser.getLink('Language Settings').click()
	... 	lang_control_name='supportedLanguages:list'
	... 	def_lang_control_name='defaultLanguage'

    >>> lang_configlet_url = browser.url

	>>> browser.getControl(name=lang_control_name).getControl(value='en').selected = True
	>>> browser.getControl(name=lang_control_name).getControl(value='es').selected = True
	>>> browser.getControl(name=lang_control_name).getControl(value='it').selected = True
	>>> browser.getControl('Save').click()

    >>> browser.open(lang_configlet_url)
	>>> browser.getControl(name=def_lang_control_name).value = ('es',)
	>>> browser.getControl('Save').click()

Vamos a configurar langview...
	>>> browser.getLink('Site Setup').click()
	>>> browser.getLink('icSemantic').click()
	>>> browser.getLink('Content Types').click()
	>>> browser.open(browser.url + '?debug=1') # vamos a testear en modo debug
	>>> browser.getControl(name='form.fallback_types:list').value = ['ATDocument',]
	>>> browser.getControl("Apply").click()

1) Crear dos usuarios con la propiedad "icsemantic.langfallback" modificada:

		usuario:    icsemantic.langfallback:
		test1        en;es;it
		test2        es;en

	>>> member1 = portal.portal_registration.addMember('test1', 'test1')
	>>> member1.setMemberProperties({'icsemantic.preferred_languages': ('en', 'es', 'it')})

	>>> member2 = portal.portal_registration.addMember('test2', 'test2')
	>>> member2.setMemberProperties({'icsemantic.preferred_languages': ('es', 'en')})

2) Crear un documento en tres idiomas usando LinguaPlone: Castellano, Inglés, Italiano

    >>> if HAS_PLONE3:
    ...     browser.getLink(url='www.platecom.com').click()

Castellano:
		Título: Esta es una prueba.
		Descripción: Una simple prueba para verificar el funcionamiento de LinguaView.
		Texto: La prueba tiene que mostrar el mismo documento en diferentes idiomas.

	>>> browser.open(folder_url)
	>>> browser.getLink('Page').click()
	>>> browser.getControl('Title').value = 'Esta es una prueba.'
	>>> browser.getControl('Description').value = 'Una simple prueba para verificar el funcionamiento de LinguaView.'
	>>> browser.getControl('Body Text').value = 'La prueba tiene que mostrar el mismo documento en diferentes idiomas.'
	>>> browser.getControl('Save').click()
	>>> 'Changes saved.' in browser.contents
	True

    >>> doc_url = browser.url
    >>> browser.getLink('Publish').click()

Inglés:
		Título: Just a test
		Description: A simple test to check how works LinguaView.

	>>> # browser.getLink('Translate into').click()
    >>> if HAS_PLONE3:
    ...     browser.getLink(url='www.platecom.com').click()
    ... else:
    ...     browser.getLink('English').click()
	>>> browser.getControl('Title').value = 'Just a test'
	>>> browser.getControl('Description').value = 'A simple test to check how works LinguaView.'
	>>> browser.getControl('Save').click()
	>>> 'Your changes have been saved.' in browser.contents
	True

Italiano:
		Título: Questo e una prova.

	>>> # browser.getLink('Translate into').click()
    >>> if HAS_PLONE3:
    ...     browser.getLink(url='www.platecom.com').click()
    ... else:
    ...     browser.getLink('Italiano').click()
	>>> browser.getControl('Title').value = 'Questo e una prova.'
	>>> browser.getControl('Save').click()
	>>> 'Your changes have been saved.' in browser.contents
	True

3) Entrar como usuario test1, chequear el resultado del documento:

		Título: Just a test
		Descripción: A simple test to check how works LinguaView.
		Texto: La prueba tiene que mostrar el mismo documento en diferentes idiomas.

	>>> browser.open(logout_url)
	>>> browser.open(login_url)
	>>> browser.getControl(name='__ac_name').value = 'test1'
	>>> browser.getControl(name='__ac_password').value = 'test1'
	>>> browser.getControl(name='submit').click()

	>>> browser.open(doc_url)
	>>> 'Just a test' in browser.contents
	True
	>>> 'A simple test to check how works LinguaView.' in browser.contents
	True
	>>> 'La prueba tiene que mostrar el mismo documento en diferentes idiomas.' in browser.contents
	True

	>>> browser.open(doc_url+'&set_language=es')
	>>> 'Esta es una prueba.' in browser.contents
	True
	>>> 'Una simple prueba para verificar el funcionamiento de LinguaView.' in browser.contents
	True
	>>> 'La prueba tiene que mostrar el mismo documento en diferentes idiomas.' in browser.contents
	True
