
Author: achiumenti Date: Tue Apr 15 13:49:16 2008 New Revision: 41 Added: trunk/main/claw-core/tests/some-page.lisp Log: writing tests for manual Added: trunk/main/claw-core/tests/some-page.lisp ============================================================================== --- (empty file) +++ trunk/main/claw-core/tests/some-page.lisp Tue Apr 15 13:49:16 2008 @@ -0,0 +1,58 @@ +;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*- +;;; $Header: tests/test1.lisp $ + +;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved. + +;;; Redistribution and use in source and binary forms, with or without +;;; modification, are permitted provided that the following conditions +;;; are met: + +;;; * Redistributions of source code must retain the above copyright +;;; notice, this list of conditions and the following disclaimer. + +;;; * Redistributions in binary form must reproduce the above +;;; copyright notice, this list of conditions and the following +;;; disclaimer in the documentation and/or other materials +;;; provided with the distribution. + +;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED +;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(in-package :claw-tests) + +(defcomponent inspector () ()) + +(defmethod wcomponent-parameters ((inspector inspector)) + (list :id :required :ref-id :required)) + +(defmethod wcomponent-template ((inspector inspector)) + (div> :static-id (htcomponent-client-id inspector) + (htcomponent-body inspector))) + +(defmethod htcomponent-instance-initscript ((inspector inspector)) + (format nil "document.getElementById\('~a').onclick = + function \() {alert\(document.getElementById\('~a').innerHTML);};" + (htcomponent-client-id inspector) + (wcomponent-parameter-value inspector :ref-id))) + +(defclass some-page (page) ()) + +(defmethod page-content ((some-page some-page)) + (let ((hidden-component-id (generate-id "hiddenComp")) + (rnd-value (prin1-to-string (random 10000)))) + (site-template> :title "this is the page title" + :class "foo" + (p> + (div> :static-id hidden-component-id :style "display: none;" rnd-value) + (inspector> :id "inspector" :ref-id hidden-component-id "Show value"))))) + +(lisplet-register-page-location *test-lisplet* 'some-page "some-page.html")