collective.cdn.core
======================

First some initial setup code:

    >>> app = layer['app']
    >>> portal = layer['portal']
    >>> request = layer['request']

    >>> from plone.testing.z2 import Browser
    >>> browser = Browser(app)

    >>> from zope.component import getUtility
    >>> from Products.CMFCore.interfaces import IPropertiesTool
    >>> ptool = getUtility(IPropertiesTool)
    >>> ptool.cdn_properties.enable_cdn_css == True
    False

    >>> ptool.cdn_properties.enable_cdn_js == True
    False

    >>> ptool.cdn_properties.enable_cdn_kss == True
    False


CDN Support
------------

Login as portal manager::

    >>> from plone.app.testing import SITE_OWNER_NAME, SITE_OWNER_PASSWORD
    >>> browser.open('http://nohost/plone/login_form')
    >>> browser.getControl(name='__ac_name').value = SITE_OWNER_NAME
    >>> browser.getControl(name='__ac_password').value = SITE_OWNER_PASSWORD
    >>> browser.getControl(name='submit').click()

Access the portal home and count the occurrences of 'portal_javascripts', 
'portal_css' and 'portal_kss'::

    >>> browser.open('http://nohost/plone/')
    >>> originalHome = browser.contents
    >>> pJsCount = originalHome.count('http://nohost/plone/portal_javascripts')
    >>> pCssCount = originalHome.count('http://nohost/plone/portal_css')
    >>> pKssCount = originalHome.count('http://nohost/plone/portal_kss')

Now we will enable Coral Networks support, so we access the control panel and 
enable the cdn support::

    >>> browser.open('http://nohost/plone/@@cdn-controlpanel')
    >>> browser.url.endswith('cdn-controlpanel')
    True

    >>> browser.getControl(name='form.enable_cdn_css').value = True
    >>> browser.getControl(name='form.enable_cdn_js').value = True
    >>> browser.getControl(name='form.enable_cdn_kss').value = True

Choose 'FakeProvider' as our CDN provider::

    >>> browser.getControl(name='form.cdn_provider').value = ['FakeProvider',]

And click the save button::

    >>> browser.getControl(name="form.actions.save").click()
    >>> browser.url.endswith('cdn-controlpanel')
    True

    >>> 'Changes saved.' in browser.contents
    True

Make sure the changes have been applied correctly to the tool::

    >>> ptool.cdn_properties.enable_cdn_css
    True
    >>> ptool.cdn_properties.enable_cdn_js
    True
    >>> ptool.cdn_properties.enable_cdn_kss
    True
    >>> ptool.cdn_properties.cdn_provider
    u'FakeProvider'

Now we, again, access the portal home and changes must have been applied. To
be certain we will count the occurrences of 'portal_javascripts', 'portal_css'
 and 'portal_kss' and these numbers should match the ones we measured before ::

    >>> browser.open('http://nohost/plone/')
    >>> cdnHome = browser.contents
    >>> pJsCDNCount = cdnHome.count('http://example.net/plone/portal_javascripts')
    >>> pCssCDNCount = cdnHome.count('http://example.net/plone/portal_css')
    >>> pKssCDNCount = cdnHome.count('http://example.net/plone/portal_kss')
    >>> pJsCount == pJsCDNCount
    True
    >>> pCssCount == pCssCDNCount
    True
    >>> pKssCount == pKssCDNCount
    True

Let's turn everything back to factory settings by disabling our FakeProvider 
settings::

    >>> browser.open('http://nohost/plone/@@cdn-controlpanel')
    >>> browser.url.endswith('cdn-controlpanel')
    True
    >>> browser.getControl(name='form.enable_cdn_css').value = False
    >>> browser.getControl(name='form.enable_cdn_js').value = False
    >>> browser.getControl(name='form.enable_cdn_kss').value = False
    >>> browser.getControl(name='form.cdn_provider').value = ['FakeProvider',]
    >>> browser.getControl(name="form.actions.save").click()
    >>> browser.url.endswith('cdn-controlpanel')
    True
    >>> 'Changes saved.' in browser.contents
    True


