[KSS-checkins] r53442 - in kukit/kss.demo/trunk/kss/demo: . browser jscoverage jscoverage/browser

gotcha at codespeak.net gotcha at codespeak.net
Sun Apr 6 14:31:33 CEST 2008


Author: gotcha
Date: Sun Apr  6 14:31:31 2008
New Revision: 53442

Added:
   kukit/kss.demo/trunk/kss/demo/jscoverage/   (props changed)
   kukit/kss.demo/trunk/kss/demo/jscoverage/IGNORE.txt
   kukit/kss.demo/trunk/kss/demo/jscoverage/__init__.py
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/__init__.py
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/backToIndex.html
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/configure.zcml
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/coverage.py
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/interfaces.py
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/kss_demo_suite_jscoverage.pt
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/setJscoverage.html
   kukit/kss.demo/trunk/kss/demo/jscoverage/browser/unsetJscoverage.html
   kukit/kss.demo/trunk/kss/demo/jscoverage/configure.zcml
Modified:
   kukit/kss.demo/trunk/kss/demo/browser/header_macros.pt
   kukit/kss.demo/trunk/kss/demo/browser/kss_demo_index.pt
   kukit/kss.demo/trunk/kss/demo/configure.zcml
Log:
add jscoverage support

Modified: kukit/kss.demo/trunk/kss/demo/browser/header_macros.pt
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/header_macros.pt	(original)
+++ kukit/kss.demo/trunk/kss/demo/browser/header_macros.pt	Sun Apr  6 14:31:31 2008
@@ -49,14 +49,23 @@
 
     <metal:header define-macro="kukit_resource">
 
-      <tal:block define="kss_devel_mode nocall:here/@@kss_devel_mode | nothing">
+      <tal:block define="kss_devel_mode nocall:here/@@kss_devel_mode | nothing;
+                         isJscoverage nocall:here/@@kss_jscoverage/isJscoverage | nothing;
+                         ">
+
+        <script tal:condition="isJscoverage" 
+                type="text/javascript"
+                tal:attributes="src
+                    string:${context/@@absolute_url}/++resource++kukit-jscoverage.js;"
+          src="++resource++kukit-jscoverage.js">
+        </script>
 
-        <script tal:condition="python: not kss_devel_mode or kss_devel_mode.isoff()" type="text/javascript"
+        <script tal:condition="python:not kss_devel_mode or (not isJscoverage and kss_devel_mode.isoff())" type="text/javascript"
           tal:attributes="src string:${context/@@absolute_url}/++resource++kukit.js;"
           src="++resource++kukit.js">
         </script>
 
-        <script tal:condition="python: kss_devel_mode and kss_devel_mode.ison()" type="text/javascript"
+        <script tal:condition="python:kss_devel_mode and (not isJscoverage and kss_devel_mode.ison())" type="text/javascript"
           tal:attributes="src string:${context/@@absolute_url}/++resource++kukit-devel.js;"
           src="++resource++kukit-devel.js">
         </script>

Modified: kukit/kss.demo/trunk/kss/demo/browser/kss_demo_index.pt
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/kss_demo_index.pt	(original)
+++ kukit/kss.demo/trunk/kss/demo/browser/kss_demo_index.pt	Sun Apr  6 14:31:31 2008
@@ -1,5 +1,6 @@
 <html>
   <head>
+    <title>KSS demos and tests</title>
     <link rel="stylesheet" type="text/css"
           tal:attributes="href string:${context/@@absolute_url}/@@kss_devel_mode/ui_css"/>
   </head>
@@ -16,6 +17,19 @@
        </form>
       </li>
     </ul>
+    <h2>Coverage</h2>
+    <ul style="background-color:#E0E0C0;">
+     <li>Link to Zelenium object (instrumented):
+       <form tal:attributes="action
+                      string:${context/@@absolute_url}/zuite_jscoverage.html">
+          <input type="text" name="path" value="zuite" />
+          <input type="submit" name="submit" value="Run all Selenium tests" />
+       </form>
+      </li>
+      <li>
+        <a href="index.html" onclick='window.open("++resource++jsc/jscoverage.html");'>Coverage report</a>
+      </li>
+    </ul>
     <p class="help">
       Zelenium object link must be an absolute path from the domain root, 
       or a relative path from the demo SimpleContent's parent.

Modified: kukit/kss.demo/trunk/kss/demo/configure.zcml
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/configure.zcml	(original)
+++ kukit/kss.demo/trunk/kss/demo/configure.zcml	Sun Apr  6 14:31:31 2008
@@ -7,7 +7,7 @@
 		   >
 
   <include package="kss.core"/>
-
+  
   <!-- Things to do only on Zope2 -->
   <configure zcml:condition="have compat_five">
 
@@ -93,4 +93,6 @@
     permission="zope.Public"
     />
 
+  <include package=".jscoverage"/>
+
 </configure>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/IGNORE.txt
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/IGNORE.txt	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,10 @@
+# You can check svn:ignore by issuing:
+#
+#     svn propget svn:ignore .
+#
+# You can update your working dir by issuing: 
+#
+#     svn propset svn:ignore -F IGNORE.txt .
+#
+js
+

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/__init__.py
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/__init__.py	Sun Apr  6 14:31:31 2008
@@ -0,0 +1 @@
+#package

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/__init__.py
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/__init__.py	Sun Apr  6 14:31:31 2008
@@ -0,0 +1 @@
+#package

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/backToIndex.html
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/backToIndex.html	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,23 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>basic_commands</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Back to index</td></tr>
+</thead><tbody>
+<tr>
+	<td>open</td>
+	<td>index.html</td>
+	<td></td>
+</tr>
+<tr>
+	<td>assertTextPresent</td>
+	<td>KSS demos</td>
+	<td></td>
+</tr>
+</tbody></table>
+</body>
+</html>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/configure.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/configure.zcml	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,49 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:browser="http://namespaces.zope.org/browser"
+		       i18n_domain="kss"
+		       >
+
+  <browser:page
+    for="kss.demo.interfaces.ISimpleContent"
+    name="zuite_jscoverage.html"
+    class=".coverage.JscoverageView"
+    attribute="getZuite"
+    permission="zope.View"
+    />
+
+  <browser:page
+      for="kss.demo.interfaces.ISimpleContent"
+      template="kss_demo_suite_jscoverage.pt"
+      name="suite_jscoverage.html"
+      permission="zope.View"
+      />
+
+  <browser:page
+      for="*"
+      class=".coverage.JscoverageView"
+      name="kss_jscoverage"
+      permission="zope.Public"
+      allowed_interface=".interfaces.IJscoverageView" />
+
+  <browser:page
+      for="kss.demo.interfaces.ISimpleContent"
+      template="setJscoverage.html"
+      name="setJscoverage.html"
+      permission="zope.View"
+      />
+
+  <browser:page
+      for="kss.demo.interfaces.ISimpleContent"
+      template="unsetJscoverage.html"
+      name="unsetJscoverage.html"
+      permission="zope.View"
+      />
+
+  <browser:page
+      for="kss.demo.interfaces.ISimpleContent"
+      template="backToIndex.html"
+      name="backToIndex.html"
+      permission="zope.View"
+      />
+
+</configure>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/coverage.py
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/coverage.py	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,57 @@
+
+try:
+    from Products.Five import BrowserView
+    BrowserView
+except ImportError:
+    from zope.publisher.browser import BrowserView
+
+from zope.publisher.interfaces import NotFound
+
+COOKIE_JSCMODE = '__kss_jscoverage'
+
+class JscoverageView(BrowserView):
+
+    # Zope3 requires the implementation of
+    # IBrowserPublisher, in order for the methods
+    # to be traversable.
+    #
+    # An alternative would be:
+    # <browser:pages class="...">
+    #   <page name="..." attribute="..." />
+    #   <page name="..." attribute="..." />
+    # </browser:pages>
+
+    def publishTraverse(self, request, name):
+        try:
+            return getattr(self, name)
+        except AttributeError:
+            raise NotFound(self.context, name, request)
+
+    def browserDefault(self, request):
+        # make ui the default method
+        return self, ('isJscoverage', )
+
+    # -- 
+    # Methods for jscoverage mode
+    # --
+
+    def setJscoverage(self):
+        'Sets jscoverage mode cookie'
+        self.request.response.setCookie(COOKIE_JSCMODE, '1', path='/')
+        return '<html><body>jscoverage cookie on</body></html>'
+
+    def unsetJscoverage(self):
+        'Unsets jscoverage mode cookie'
+        self.request.response.expireCookie(COOKIE_JSCMODE, path='/')
+        return '<html><body>jscoverage cookie off</body></html>'
+
+    def isJscoverage(self):
+        'Queries jscoverage mode cookie'
+        return bool(COOKIE_JSCMODE in self.request.cookies)
+
+    def getZuite(self, path):
+        """Redirects to the Zuite page, Zuite object is found from path."""
+        zuite = self.context.aq_inner.aq_parent.restrictedTraverse(path)
+        html = "%s/core/TestRunner.html?test=%s/suite_jscoverage.html" % (zuite.absolute_url(), self.context.absolute_url())
+        return self.request.response.redirect(html)
+

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/interfaces.py
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/interfaces.py	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,14 @@
+
+from zope.publisher.interfaces.browser import IBrowserPublisher
+
+class IJscoverageView(IBrowserPublisher):
+
+    def setJscoverage():
+        'Sets jscoverage mode cookie'
+
+    def unsetJscoverage():
+        'Unsets jscoverage mode cookie'
+
+    def isJscoverage():
+        'Queries jscoverage mode cookie'
+

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/kss_demo_suite_jscoverage.pt
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/kss_demo_suite_jscoverage.pt	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,42 @@
+<html>
+  <body>
+    <table id="suiteTable"
+           cellpadding="1"
+           cellspacing="1"
+           border="1"
+           class="selenium">
+      <tbody tal:define="selenium_tests context/@@kss_demo_registry/getSeleniumTests">
+        <tr><td><b>Test Suite</b></td></tr>
+        <tr>
+          <td>
+            <h4>
+              <a href="setJscoverage.html">Jscoverage mode</a>
+            </h4>
+          </td>
+        </tr>
+        <tal:groups repeat="selenium_test selenium_tests">
+          <tr>
+            <td><a href="test.html"
+                   tal:content="selenium_test/title"
+                   tal:attributes="href selenium_test/href"
+                   >Title</a></td>
+          </tr>
+        </tal:groups>
+        <tr>
+          <td>
+            <h4>
+              <a href="unsetJscoverage.html">Development mode</a>
+            </h4>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <h4>
+              <a href="backToIndex.html">Back to all demos</a>
+            </h4>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+  </body>
+</html>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/setJscoverage.html
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/setJscoverage.html	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,23 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>basic_commands</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">setJscoverage</td></tr>
+</thead><tbody>
+<tr>
+	<td>open</td>
+	<td>demo/@@kss_jscoverage/setJscoverage</td>
+	<td></td>
+</tr>
+<tr>
+	<td>assertTextPresent</td>
+	<td>jscoverage cookie on</td>
+	<td></td>
+</tr>
+</tbody></table>
+</body>
+</html>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/browser/unsetJscoverage.html
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/browser/unsetJscoverage.html	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,23 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>basic_commands</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">unsetJscoverage</td></tr>
+</thead><tbody>
+<tr>
+	<td>open</td>
+	<td>demo/@@kss_jscoverage/unsetJscoverage</td>
+	<td></td>
+</tr>
+<tr>
+	<td>assertTextPresent</td>
+	<td>jscoverage cookie off</td>
+	<td></td>
+</tr>
+</tbody></table>
+</body>
+</html>

Added: kukit/kss.demo/trunk/kss/demo/jscoverage/configure.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/jscoverage/configure.zcml	Sun Apr  6 14:31:31 2008
@@ -0,0 +1,52 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:browser="http://namespaces.zope.org/browser"
+		       i18n_domain="kss"
+		       >
+
+  <include package=".browser" />
+
+  <!-- Instrumented Development version
+  
+  Generated by 
+  
+  parts/coverage/bin/jscoverage src/kss.core/kss/core/kukit/kukit/ src/kss.demo/kss/demo/jscoverage/js
+
+  -->
+
+  <browser:concatresource
+    files=" js/kukit.js
+            js/utils.js
+            js/errors.js
+            js/oper.js
+            js/tokenizer.js
+            js/providerreg.js
+            js/resourcedata.js
+            js/kssparser.js
+            js/eventreg.js
+            js/actionreg.js
+            js/dom.js
+            js/commandreg.js
+            js/serveraction.js
+            js/requestmanager.js
+            js/commandprocessor.js
+            js/selectorreg.js
+            js/forms.js
+            js/plugin.js"
+    name="kukit-jscoverage.js"
+    compress_level="devel"
+    caching="memory"
+    lmt_check_period="0"
+  />
+ 
+  <browser:resourceDirectory
+        name="jsc"
+        directory="js"
+        />
+
+  <utility 
+        provides="concatresource.interfaces.IConcatResourceAddon"
+        name="kukit-jscoverage.js"
+        component="kss.core.pluginregistry.registry.kssConcatResourceAddon"
+        />
+
+</configure>


More information about the Kukit-checkins mailing list