first draft
authorschepers
Thu, 17 Jul 2008 03:20:43 +0900
changeset 58 e85388cb0c6f
parent 57 8a027c594d32
child 59 1bf48af72004
first draft
tests/Requirements.html
tests/framework/TestLib.js
tests/framework/mousewheel-001.html
tests/framework/mousewheel-002.html
tests/framework/mousewheel-scroll-001.html
tests/framework/mousewheel-test.html
tests/framework/text.htm
tests/mouseover-template.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/Requirements.html	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html lang='en-US' xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+<head>
+<title>Document Object Model (DOM) Level 3 Semantic Requirements</title>
+<link rel='stylesheet' type='text/css' href='spec.css' />
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<h3 id='events-Conformance-h3' class='div3'>1.1.1 Conformance</h3>
+<ol>
+<li>A DOM application may use the hasFeature(feature, version) method of the DOMImplementation interface with parameter values "Events" and "3.0" (respectively).</li>
+<li>An implementation that returns true for "Events" and "3.0" will also return true for the parameters "Events" and "2.0".</li>
+</ol>
+<h3 id='events-Event-types-h2' class='div3'>1.5 Event Types</h3>
+<ol>
+<li>Each event is associated with a type, called event type.</li>
+<li>The event type is composed of a local name and a namespace URI.</li>
+<li>All events defined in this specification are in no namespace.</li>
+</ol>
+<h3 id='events-Events-interface-h2' class='div3'>1.6 Basic interfaces</h3>
+<ul>
+ <li><b>Event</b>
+  <ol>
+   <li>An object which implements the <code>Event</code> interface is passed as the parameter to an <code>EventListener</code>.</li>
+   <li>To create an instance of the Event interface, use the DocumentEvent.createEvent("Event") method call.</li>
+   <li>The <code>defaultPrevented</code> attribute is used to indicate whether Event.preventDefault() has been called for this event.</li>
+   <li>The <code>namespaceURI</code> attribute indicates the associated with this event at initialization time.</li> 
+   <li>The <code>initEventNS</code> method initializes the attributes of an <code>Event</code> object.</li>
+   <li>the <code>namespaceURIArg</code> of the <code>initEventNS</code> method specifies the namespace URI associated with this event.</li>
+   <li>If no namespace is available for the <code>namesapaceURIArg</code>, then it's value is <code>null</code>.</li>
+   <li>The <code>stopImmediatePropagation</code> method prevents other event listeners from being triggered.</li>   
+   <li>The effects of the <code>stopImmediatePropagation</code> method are immediate.</li>
+   <li>The <code>stopImmediatePropagation</code> method does not prevent the default action from being invoked.</li>   
+  </ol>
+  </li>  
+ <li><b>CustomEvent</b>
+   <ol>
+    <li>The <code>CustomEvent</code> allows applications to provide contextual information about the event type.</li>
+    <li>Application-specific event types should have an associated namespace to avoid clashes with future general-purpose event types.</li>
+    <li>To create an instance of the <code>CustomEvent interface</code>, use the <code>DocumentEvent.createEvent("CustomEvent")</code> method call.</li>
+    <li>The <code>initCustomEventNS</code> method initializes attributes of a CustomEvent object.</li>
+   </ol>
+   </li>   
+  <li><b>EventTarget</b>   
+   <ol>
+    <li>The <code>addEventListenerNS</code> method registers an event listener, depending on the useCapture parameter.</li>
+    <li>The <code>namespaceURI</code> of the <code>addEventListenerNS</code> method specifies Specifies the Event.namespaceURI associated with the event for which the user is registering.</li>    
+    <li>The <code>type</code> parameter of the <code>addEventListenerNS</code> method specifies the Event type associated with the event for which the user is registering.</li>
+    <li>The <code>listener</code> parameter of the <code>addEventListenerNS</code> method takes an object implemented by the user which implements the EventListener interface and contains the method to be called when the event occurs.</li> 
+    <li>If the <code>useCapture</code> parameter of the <code>addEventListenerNS</code> method set to "true" indicates that the user wishes to add the event listener for the capture phase only.</li>
+    <li>If the <code>useCapture</code> parameter of the <code>addEventListenerNS</code> method set to "false" indicates that the event will be triggered during the target and bubbling phases.</li>    
+    <li>The <code>dispatchEvent</code> method dispatches an event into the implementation's event model.</li>    
+    <li>The event target of the event is the EventTarget object on which dispatchEvent is called (dispatchEvent method).</li>
+    <li>The <code>dispatchEvent</code> method raises an UNSPECIFIED_EVENT_TYPE_ERR exception if the Event.type was not specified by initializing the event before dispatchEvent was called.</li>
+    <li>The <code>dispatchEvent</code> method raises an EventException if the Event.type was set to <code>null</code></li>
+    <li>The <code>dispatchEvent</code> method raises a DISPATCH_REQUEST_ERR exception if the Event object is already being dispatched.</li>
+    <li>The <code>dispatchEvent</code> method raises an NOT_SUPPORTED_ERR exception if the Event object has not been created using DocumentEvent.createEvent().</li>
+    <li>The <code>dispatchEvent</code> method raises an INVALID_CHARACTER_ERR exception if Event.type is not an NCName as defined in [XML Namespaces 1.1].</li>
+    <li>The <code>removeEventListenerNS</code> removes an event listener.</li>
+    <li> Calling <code>removeEventListenerNS</code> with arguments which do not identify any currently registered EventListener on the EventTarget has no effect.</li>
+    <li>The <code>namespaceURI</code> of the <code>removeEventListenerNS</code> method Specifies the Event.namespaceURI associated with the event for which the user registered the event listener.</li> 
+    <li>The <code>type</code> parameter of the <code>removeEventListenerNS</code> method specifies the Event.type associated with the event for which the user is registering.</li>    
+    <li>The <code>listener</code> parameter of the <code>removeEventListenerNS</code> method takes an object implemented by the user which implements the EventListener interface and contains the method to be called when the event occurs.</li>     
+    <li>The <code>useCapture</code> parameter of the <code>removeEventListenerNS</code> method removes an event listener.</li>     
+    <li>Calling the <code>useCapture</code> parameter of the <code>removeEventListenerNS</code> method with arguments which do not identify any currently registered EventListener on the EventTarget has no effect.</li> 
+  </ol>
+  </li>
+  </ul>
+   <h3 id='events-Events-document-h3' class='div3'>1.6.1 Event Creation</h3>
+   <ul>
+     <li><b>DocumentEvent </b>
+     <ol>
+       <li>The <code>canDispatch</code> method tests if the implementation can generate events of a specified type.</li>
+       <li>The <code>canDispatch</code> method return <code>true</code> if the implementation can dispatch the event.</li>
+       <li>The <code>canDispatch</code> method return <code>false</code> if the implementation can not dispatch the event.</li>       
+       <li>The <code>namespaceURI</code> parameter of the <code>canDispatch</code> method specifies the Event.namespaceURI of the event.</li>
+       <li>The <code>type</code> parameter of the <code>canDispatch</code> method specifies the Event.type of the event.</li>
+     </ol>
+    </li>
+   </ul>
+   <h3 id='events-Events-eventgroupings-uievents-h3' class='div3'>1.7.1 User Interface event types</h3>    
+    <ul>
+     <li><b>initUIEventNS</b> 
+      <ol>
+       <li>The <code>canDispatch</code> method initializes attributes of an UIEvent object.</li>
+       <li>The <code>canDispatch</code> method has the same behavior as Event.initEventNS().</li>
+       <li>The <code>namespaceURI</code> parameter of the <code>initUIEventNS</code> method Specifies Event.namespaceURI, the namespace URI associated with this event, or null if no namespace.</li>
+       <li>The <code>typeArg</code> parameter of the <code>initUIEventNS</code> method specifies Event.type, the local name of the event type.</li>
+       <li>The <code>canBubbleArg</code> parameter of the <code>initUIEventNS</code> method specifies Event.bubbles. This parameter overrides the intrinsic bubbling behavior of the event.</li>
+       <li>The <code>cancelableArg</code> parameter of the <code>initUIEventNS</code> method specifies Event.cancelable. This parameter overrides the intrinsic cancelable behavior of the event.</li>    
+       <li>The <code>viewArg</code> parameter of the <code>initUIEventNS</code> method specifies UIEvent.view.</li>        
+       <li>The <code>viewArg</code> parameter of the <code>initUIEventNS</code> method can be <code>null</code></li>       
+       <li>The <code>detailArg</code> parameter of the <code>initUIEventNS</code> method specifies UIEvent.detail.</li>
+      </ol>
+      </li>
+     </ul>
+   <h3 id='events-Events-TextEvents-Interfaces-h3' class='div3'>1.7.2 Text events types</h3>    
+    <ul>
+     <li><b>TextEvent</b> 
+      <ol>  
+        <li>The <code>TextEvent</code> interface provides specific contextual information associated with Text Events.</li>
+        <li>To create an instance of the <code>TextEvent</code> interface, use the DocumentEvent.createEvent("TextEvent") method call.</li>
+      </ol>
+     </li>
+    </ul>   
+</body>
+</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/framework/TestLib.js	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,29 @@
+/* TestLib -- Simple Testing Library 
+   Abstracts common browser inconsistencies where the purpose of the test case does not depent on testing the given functionality
+*/
+
+// [global scope]
+function TestLibrary() { }
+// [TestLib scope] addEvent( [in] Object  /* HTMLElement / HTMLDocument / Window */,
+//                                              [in] String /* event name */,
+//                                              [in] FunctionPointer /* JS function pointer variable */,
+//                                              [in] Bool /* useCapture (optional)*/ )
+TestLibrary.prototype.addEvent = function (ob, name, func, capture) 
+{ 
+   if (!ob || (typeof ob != 'object'))
+	  throw new Error("Call to TestLib.addEvent([ob], name, func, capture): Please provide the object (element, document, window) to which the event should be attached.", "Call to TestLib.addEvent: Please provide the object (element, document, window) to which the event should be attached.");
+   if (!name || (typeof name != 'string'))
+      throw new Error("Call to TestLib.addEvent(ob, [name], func, capture): Please provide the name of the event to attach (sans the 'on' prefix). For example: 'click' not 'onclick'.", "Call to TestLib.addEvent(ob, [name], func, capture): Please provide the name of the event to attach (sans the 'on' prefix). For example: 'click' not 'onclick'.");
+   if (!func || (typeof func != 'function'))
+      throw new Error("Call to TestLib.addEvent(ob, name, [func], capture): Please provide the function pointer to be called when the event is raised. For example: function () { ... }", "Call to TestLib.addEvent(ob, name, [func], capture): Please provide the function pointer to be called when the event is raised. For example: function () { ... }");
+
+   // Param 4 is optional. if specified it will be used--however, some browsers (IE) do not support the capture phase.
+   if (capture == undefined)
+      capture = false;
+   if (document.addEventListener)
+      return ob.addEventListener(name, func, capture);
+   else // IE special case
+      return ob.attachEvent("on" + name, func);
+}
+
+var TestLib = new TestLibrary();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/framework/mousewheel-001.html	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,61 @@
+<html>
+<head>
+	<!-- Test Name: mousewheel-001  -->
+	<!-- Purpose - Evaluate a user generated mousewheel event over a table element -->
+	
+<script type="text/javascript">
+
+	function GetWheel( event )
+	{
+		var delta = 0;
+		if (!event)
+		{
+			event = window.event;
+		} 
+		
+		if (event.wheelDelta) 
+		{
+			delta = event.wheelDelta/120; 
+			if (window.opera) 
+			{
+				delta = -delta;
+			}
+		} 
+		else if (event.detail) 
+		{
+			delta = -event.detail/3;
+		}
+
+		if (delta)
+		{
+			var direction =  "up";
+			if (0 > delta)
+			{
+				direction = "down";
+			}
+
+			document.getElementById('delta-out').innerHTML = delta + " (" + direction + ")";
+		}
+	}
+
+	function addListener() 
+	{ 
+		if ( window.addEventListener )
+		{
+			window.addEventListener('DOMMouseScroll', GetWheel, false);
+		}
+		else
+		{
+			window.onmousewheel = document.onmousewheel = GetWheel;
+		}
+	} 
+
+</script> 
+</head> 
+<body onload="addListener();">
+	<h1>Mousewheel Delta Test</h1>
+	<p>Scroll mouse wheel to see delta.</p>
+	<p>delta: <span id="delta-out">0</span></p>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/framework/mousewheel-scroll-001.html	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,170 @@
+<html>
+<head>
+	<!-- Test Name: mousewheel-001  -->
+	<!-- Purpose - Evaluate a user generated mousewheel event over a table element -->
+	
+<script type="text/javascript">
+
+	function GetWheel( event )
+	{
+		alert( "wheel" )
+		/*
+		var delta = 0;
+		if (!event)
+		{
+			event = window.event;
+		} 
+		
+		if (event.wheelDelta) 
+		{
+			delta = event.wheelDelta/120; 
+			if (window.opera) 
+			{
+				delta = -delta;
+			}
+		} 
+		else if (event.detail) 
+		{
+			delta = -event.detail/3;
+		}
+
+		if (delta)
+		{
+			var direction =  "up";
+			if (0 > delta)
+			{
+				direction = "down";
+			}
+
+			document.getElementById('delta-out').innerHTML = delta + " (" + direction + ")";
+		}
+		*/
+	}
+
+	function addListener() 
+	{ 
+		if ( window.addEventListener )
+		{
+			window.addEventListener('DOMMouseScroll', GetWheel, false);
+		}
+		else
+		{
+			window.onmousewheel = document.onmousewheel = GetWheel;
+		}
+	} 
+
+	window.onscroll = scroll;
+
+	function scroll( e )
+	{
+	    alert("scroll event detected!\n" + window.pageXOffset+" " + window.pageYOffset + "\n" + window.scrollX + " " + window.scrollY );
+
+	   	/*
+		var props = '';
+		for (var eachProp in e)
+		{
+		   propValue = e[eachProp];
+		   props += eachProp + ': ' + propValue + '\n';
+		}
+		alert(props);
+		*/
+
+
+		// alert("scroll event detected! "+window.pageXOffset+" "+window.pageYOffset);
+		// window.status = window.pageXOffset + " " + window.pageYOffset;
+	 	// note: you can use window.innerWidth and window.innerHeight to access the width and height of the viewing area
+	}
+</script> 
+</head> 
+<body onload="addListener();">
+	<h1>Mousewheel Delta Test</h1>
+	<p>Scroll mouse wheel to see delta.</p>
+	<p>delta: <span id="delta-out">0</span></p>
+
+
+	<div id="lipsum">
+	<p>
+	Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque dapibus ultricies leo. Nulla rutrum vestibulum neque. Cras gravida, lectus eget aliquam sollicitudin, dui odio ullamcorper massa, a tristique arcu ante vel sem. Vivamus urna risus, venenatis et, convallis sit amet, feugiat cursus, neque. Nullam at sem id purus ultrices ornare. Aliquam vestibulum purus sit amet est. Sed tempus dapibus nisi. Fusce venenatis massa tempus enim. Aenean convallis sapien elementum mauris. Aliquam nulla elit, ultrices non, euismod sed, sagittis nec, felis. Aenean vitae urna. Nunc consectetuer congue tortor. Ut lobortis velit nec lacus. Integer nisi. Vivamus sit amet dolor lacinia libero porttitor consequat. Nullam ultricies, lacus in luctus sodales, justo erat tincidunt tortor, nec accumsan metus turpis et ante. Duis eget tortor non pede egestas condimentum.
+	</p>
+	<p>
+	Nullam dapibus lacinia metus. Vivamus luctus. Donec lacinia, lacus a dictum hendrerit, odio nisi scelerisque tellus, in venenatis sem orci eget velit. Integer vulputate, pede a lacinia dapibus, ante sapien rutrum pede, quis condimentum quam augue id elit. Sed et neque in mauris congue commodo. Sed velit dolor, dignissim at, elementum sit amet, hendrerit vel, quam. Nullam sagittis eros porta lorem. Suspendisse eget erat vel dolor semper feugiat. Donec cursus. Etiam vestibulum mollis lacus. Donec quam risus, dignissim non, tempor ac, tristique vulputate, nibh. Nunc vitae mi sit amet massa iaculis hendrerit. Aenean vehicula arcu ut tortor. Etiam tincidunt tristique tellus. Curabitur vel mauris. Vivamus vitae nunc nec sapien commodo congue. Mauris eget magna. Praesent et leo nec lectus blandit consectetuer.
+	</p>
+	<p>
+	Morbi blandit consequat odio. Aliquam sollicitudin dui vel nisi. Proin tellus mauris, blandit eget, sodales a, tincidunt vel, justo. Vestibulum in tellus id neque auctor convallis. Duis justo mi, pharetra vel, dignissim in, imperdiet quis, pede. Aliquam vel velit eu augue scelerisque posuere. Integer sit amet mauris. Sed vestibulum, mi a faucibus malesuada, mi nibh euismod leo, nec interdum elit odio quis ante. Proin purus leo, aliquet a, molestie sit amet, hendrerit eget, neque. Nullam ligula. Morbi placerat bibendum augue.
+	</p>
+	<p>
+	Donec sed justo. Suspendisse ac urna id mi accumsan dignissim. Praesent non libero et quam sodales lobortis. Morbi rutrum. Nulla lobortis diam vel nulla. Cras metus neque, fringilla vel, ullamcorper a, pharetra eget, mauris. Suspendisse gravida tellus nec ante. Maecenas gravida urna non augue. Nam nec justo. Nulla at velit. Suspendisse nec arcu sed arcu iaculis laoreet. Donec ut magna in eros egestas sagittis. Integer congue augue vitae orci. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce semper consectetuer nisl. Curabitur nisl. Donec interdum.
+	</p>
+	<p>
+	Donec a orci. Suspendisse potenti. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec non justo. Maecenas egestas tortor nec lacus. Integer dapibus, ligula ut aliquet pharetra, purus sem malesuada sapien, ut porttitor lorem nulla in mi. Aenean luctus massa at lorem. Suspendisse laoreet. Proin sem libero, eleifend et, iaculis eget, vestibulum quis, arcu. Suspendisse id mauris ut tortor malesuada cursus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer et enim. Cras ac velit convallis orci molestie rutrum. Morbi ornare risus a enim. Vivamus nulla.
+	</p>
+	<p>
+
+	Quisque sem ipsum, gravida vel, accumsan porta, porttitor sit amet, sapien. Sed laoreet augue ut nisl. Phasellus rhoncus suscipit turpis. Donec volutpat hendrerit dui. Phasellus euismod dictum augue. Aenean malesuada interdum odio. Etiam id justo. Ut lacus enim, molestie ut, semper ut, euismod id, neque. Sed dui. Nunc vehicula odio vel tortor. Duis malesuada nibh sed libero. Sed vitae sem quis augue consequat vulputate. Proin vestibulum, quam ac tincidunt iaculis, augue arcu aliquet quam, ac suscipit felis lorem sit amet lectus.
+	</p>
+	<p>
+	Pellentesque tempor pretium orci. Maecenas ornare massa quis nisl. Cras posuere egestas tortor. Aliquam erat volutpat. Aliquam erat volutpat. Nam condimentum. Maecenas sit amet massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed sit amet ipsum eget erat lacinia convallis. Etiam pellentesque nunc congue mauris. Morbi nunc massa, sollicitudin elementum, faucibus ac, malesuada eu, magna. Maecenas condimentum lobortis libero. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas interdum. Pellentesque fringilla auctor leo.
+	</p>
+	<p>
+	Donec consectetuer enim et justo. Ut sit amet lorem nec velit malesuada pellentesque. Quisque dapibus auctor purus. Praesent nec turpis. In in ipsum. Duis a velit. Fusce condimentum semper eros. Sed sapien ipsum, semper ullamcorper, condimentum vitae, tempor suscipit, eros. Ut volutpat posuere quam. Morbi vestibulum nulla quis nunc. Proin varius pede eget eros. Quisque libero. Cras tellus. Proin vitae enim. Praesent venenatis, lacus eget sagittis rhoncus, elit tellus tincidunt tortor, ut egestas mi lorem posuere ipsum. Integer id orci a risus auctor adipiscing.
+	</p>
+	<p>
+	Maecenas at lacus et nisi venenatis consequat. Donec id lorem. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer tortor justo, dictum ac, luctus non, facilisis convallis, nunc. Mauris orci massa, sagittis eu, auctor nec, ultricies in, eros. Phasellus lacinia convallis tellus. Mauris nisi tortor, molestie quis, pulvinar quis, posuere non, lacus. Maecenas tincidunt. Duis erat pede, bibendum ut, pretium ut, ornare eu, massa. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum adipiscing, massa auctor sollicitudin tristique, nisl est adipiscing odio, eget faucibus felis nisl sit amet diam.
+	</p>
+	<p>
+	Morbi massa. Aliquam erat volutpat. Vivamus nec ante. Sed diam turpis, condimentum et, adipiscing id, vulputate non, arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris accumsan libero quis felis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam dui nulla, varius id, ornare nonummy, luctus ut, massa. Nam tincidunt, nibh ac faucibus euismod, diam felis luctus nunc, ut mattis ligula justo quis erat. Pellentesque rutrum dolor nec leo. Donec tincidunt aliquet ipsum. Maecenas ut ipsum sit amet mi posuere faucibus. Donec est nulla, pellentesque et, laoreet sed, consequat at, eros.
+	</p>
+	<p>
+	Phasellus euismod turpis a nisi. Nam gravida magna et massa. Donec aliquet lobortis neque. Morbi pulvinar sollicitudin turpis. Aenean nulla. Proin sollicitudin sagittis ante. Proin consectetuer iaculis velit. In hac habitasse platea dictumst. Fusce sollicitudin pharetra mauris. Nulla facilisi. Nulla euismod tempus orci. Vivamus dignissim mi eget mauris. Nunc molestie mattis justo. Curabitur non metus blandit est tempus eleifend. Nulla consectetuer mattis justo. Aenean eu eros. Integer eu sapien. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+	</p>
+
+	<p>
+	Aliquam eu pede. Sed enim velit, sollicitudin et, dapibus eget, condimentum in, elit. Nulla et augue. Ut nec enim. In nec magna. Proin at sem eget est fringilla tincidunt. Nullam porta, arcu ut ornare dictum, nunc orci pretium mi, lacinia posuere risus lectus id sem. Duis ullamcorper enim vel est. Maecenas ornare malesuada nibh. Etiam sapien tortor, pulvinar at, ultricies non, facilisis nec, elit. Maecenas condimentum pede id ipsum. Fusce at felis. Phasellus tristique, sapien ac tincidunt sollicitudin, lacus neque mollis mauris, ac ullamcorper pede metus at purus. Mauris eu nunc ac nulla vestibulum egestas.
+	</p>
+	<p>
+	Integer fringilla arcu in ante. Vivamus odio augue, ornare nec, fermentum vitae, posuere sed, velit. Duis ut ante. Vivamus interdum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec tempor ligula non erat tristique lobortis. Vestibulum arcu est, dapibus ut, consequat non, rutrum eget, augue. Sed lacus. Sed eget metus. Nam nisl sem, aliquet eget, aliquet ac, aliquet sed, augue. Duis ac ligula et eros laoreet lacinia. Morbi euismod malesuada metus. Etiam ultricies. Maecenas a arcu.
+	</p>
+	<p>
+	Maecenas ante velit, interdum tempor, convallis in, porta sodales, nulla. Integer massa sem, euismod ac, pellentesque quis, tempus vel, quam. Etiam sed elit. Sed nec ante. Proin id orci. Praesent cursus hendrerit augue. Nam auctor. Aenean ut urna. Suspendisse tempor, risus nec lobortis hendrerit, magna lorem venenatis pede, ultricies scelerisque ipsum risus vitae turpis. Vivamus eu ipsum. Donec nisi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam ligula urna, vehicula ac, dignissim imperdiet, lobortis at, risus. In eget quam non mi porta hendrerit. Aenean gravida mauris vitae orci vehicula porttitor. Fusce lacinia. Morbi egestas sodales eros.
+	</p>
+	<p>
+	Nullam sit amet est vel leo ultrices dignissim. Nunc nec mi at sem tempor congue. Aliquam malesuada magna ut sapien. Morbi lectus. Aliquam erat volutpat. Nullam blandit nulla vitae neque. Maecenas lacus massa, ornare ac, semper vitae, rhoncus non, dui. Quisque eu lectus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy ornare nulla. Sed tincidunt diam.
+	</p>
+	<p>
+	Proin molestie suscipit est. Nunc in lorem. Donec molestie nunc tincidunt lorem. Aliquam nunc urna, tempor quis, vulputate sed, consectetuer eget, pede. Curabitur purus odio, dictum eu, interdum quis, lobortis non, est. Phasellus urna neque, tincidunt ullamcorper, elementum eget, euismod vel, felis. Praesent cursus metus in mauris. Nam mattis. Donec ac ipsum eget magna egestas mattis. Proin interdum leo et nisi.
+	</p>
+	<p>
+	Integer tempus luctus sapien. Cras mollis porttitor magna. Pellentesque in nunc a nibh convallis ultricies. Vestibulum ultrices. Nulla facilisi. Vestibulum sapien dolor, egestas quis, faucibus vel, adipiscing ac, nulla. Aliquam porttitor dictum odio. Pellentesque iaculis commodo odio. In hac habitasse platea dictumst. Sed fringilla nulla id arcu. Mauris bibendum. Donec quis est. Etiam dignissim. Integer vehicula felis et massa. Proin feugiat lorem id erat. Cras non est vitae quam lobortis aliquam. Donec nisi pede, interdum at, aliquet eu, volutpat et, massa. Aenean varius ante. Maecenas aliquam. In hac habitasse platea dictumst.
+
+	</p>
+	<p>
+	Sed semper dui sit amet purus. Donec nonummy sapien a purus. Suspendisse odio. Suspendisse euismod aliquet mi. Mauris congue eros bibendum ipsum. Aliquam tellus felis, dictum lobortis, suscipit vel, dignissim sed, mauris. Nulla sapien sapien, placerat euismod, rutrum pellentesque, lobortis et, risus. Proin tincidunt, enim vitae accumsan nonummy, metus velit ornare ligula, non rhoncus tortor nunc varius tellus. Proin dictum. Nunc in diam. In nec justo. Nam nulla massa, vulputate tincidunt, rutrum vel, tempor at, sem. Aliquam sed felis.
+	</p>
+	<p>
+	Proin vehicula, lectus non egestas aliquet, elit libero aliquam velit, sollicitudin convallis turpis sapien in massa. Ut sapien nulla, lobortis sed, feugiat eu, elementum id, enim. Donec ut lorem sit amet quam bibendum varius. Sed tortor ante, posuere ut, consequat scelerisque, adipiscing convallis, nibh. Pellentesque mattis, dui vel tempus tincidunt, quam tortor luctus ipsum, sollicitudin sodales libero augue a lacus. Sed aliquet pharetra est. Integer nibh felis, imperdiet a, cursus ac, eleifend vitae, erat. Vivamus consectetuer est vel nulla. Proin turpis est, volutpat in, fringilla eu, rutrum vel, orci. Aenean non lacus non neque nonummy pharetra. Nam mattis euismod mauris. Integer ac leo suscipit justo tincidunt pharetra. Ut nisl ipsum, convallis eu, feugiat quis, fringilla accumsan, erat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer sagittis.
+	</p>
+	<p>
+	Duis ac leo sed justo ullamcorper bibendum. Proin blandit augue eget turpis. Proin dapibus. Pellentesque odio tellus, aliquet et, nonummy sed, malesuada id, turpis. Nulla tempus venenatis magna. Quisque sed massa. Donec sollicitudin, turpis sit amet lacinia feugiat, risus nunc cursus risus, vel commodo metus mi posuere orci. Proin lacus dui, ullamcorper sit amet, semper nec, lobortis vitae, felis. In hac habitasse platea dictumst. Morbi aliquet est sit amet nisi. Integer sodales. Sed ut nulla in metus pellentesque convallis. Ut vitae erat. Praesent sagittis quam vitae quam.
+	</p>
+	<p>
+	Proin mollis mauris quis ligula. Integer sollicitudin sollicitudin ante. Nunc ut nunc. Phasellus vulputate nibh in tellus. Mauris at pede id sem dapibus eleifend. Phasellus volutpat ipsum eu sem. Morbi urna risus, sollicitudin a, tincidunt ac, lacinia aliquet, nisi. In hac habitasse platea dictumst. Phasellus adipiscing. In vitae risus. Cras adipiscing mi non ligula.
+	</p>
+	<p>
+	Sed id risus. Vestibulum et arcu quis arcu ultricies mattis. Donec in pede. In pharetra augue vitae quam gravida consectetuer. Praesent adipiscing orci eget massa. Donec at justo. Nulla arcu. Nullam dapibus scelerisque est. Maecenas eros arcu, ultricies vitae, tempus et, congue nec, lectus. Pellentesque sit amet orci. Morbi tortor erat, gravida nec, aliquam eu, sagittis et, lorem. Maecenas vitae libero. Aenean congue nulla. Donec mi. Sed nibh risus, ornare eget, lacinia in, commodo id, nulla. Pellentesque in est non urna mattis vulputate. Curabitur ac nunc.
+	</p>
+	<p>
+
+	Aliquam enim. Integer nec magna. Integer dignissim. Mauris imperdiet dapibus est. Etiam nisl tortor, pretium eget, laoreet in, ullamcorper eget, diam. Donec turpis. Curabitur augue. Quisque tempor massa eu diam. Curabitur suscipit varius enim. Mauris sodales, nunc ac fermentum aliquam, nisl justo dictum lacus, a egestas mauris neque sed leo. Aliquam nec turpis. Curabitur adipiscing velit vitae elit. Nam id pede. Mauris tempor eros nec magna. Mauris quis dolor a enim vulputate congue. Proin vehicula. Vestibulum volutpat, est vel laoreet facilisis, velit arcu ornare justo, at ultrices felis nisi sed nisi. Mauris ut purus. Ut interdum, odio sed fermentum mattis, erat velit egestas libero, a ullamcorper orci justo vitae leo.
+	</p>
+	<p>
+	Nam interdum, dolor eget ullamcorper sagittis, nisi eros vestibulum erat, in aliquam urna nibh dapibus purus. Vivamus suscipit, est eget vestibulum elementum, lacus tellus fringilla augue, non ultricies nibh orci sit amet nisi. Suspendisse potenti. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer nec augue. Suspendisse ante erat, commodo non, tincidunt eu, convallis ac, elit. Nulla facilisi. Phasellus ultrices interdum nisi. Morbi porttitor convallis ante. Integer ultrices consectetuer lectus. Etiam tempor metus eget felis. Ut leo.
+	</p>
+	<p>
+	Ut et erat. Duis sed lorem. Morbi eget lorem. Vestibulum placerat ultricies dui. Nam interdum euismod sem. Aenean eget ligula at libero convallis egestas. Nunc viverra. Morbi enim. Sed bibendum risus id leo. Donec dictum, mauris vitae pulvinar facilisis, lacus purus aliquam libero, sed pharetra metus enim ut tortor. Ut lectus massa, viverra vel, rhoncus quis, mollis id, leo. Mauris nulla. Donec massa mi, faucibus a, dapibus et, suscipit vel, purus. Quisque mauris nibh, placerat at, vehicula nec, iaculis ac, odio. Nunc varius est ut arcu. Vivamus vel lectus quis arcu porttitor malesuada. Cras volutpat tristique urna. Curabitur fringilla convallis erat. Quisque ultrices vestibulum elit.
+	</p>
+	</div>
+
+
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/framework/mousewheel-test.html	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,37 @@
+<html>
+<head>
+<script type="text/javascript">
+function handle(delta) {
+	var s = delta + ": ";
+	if (delta < 0)
+		s += "down";
+	else
+		s += "up";
+	document.getElementById('delta').innerHTML = s;
+}
+
+function wheel(event){
+	var delta = 0;
+	if (!event) event = window.event;
+	if (event.wheelDelta) {
+		delta = event.wheelDelta/120; 
+		if (window.opera) delta = -delta;
+	} else if (event.detail) {
+		delta = -event.detail/3;
+	}
+	if (delta)
+		handle(delta);
+}
+
+/* Initialization code. */
+if (window.addEventListener)
+	window.addEventListener('DOMMouseScroll', wheel, false);
+window.onmousewheel = document.onmousewheel = wheel;
+
+</script>
+</head>
+<body>
+<div id="delta">Scroll mouse wheel to see delta here.</div>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/framework/text.htm	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+            "http://www.w3.org/TR/html4/loose.dtd">
+<html> 
+<!-- Test Name: doubleClick-001  -->
+<!-- Purpose - Evaluate a user generated Double Click event over a table element -->
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">    
+   <title>DOM Events API Test Suite - doubleclick-001 </title>
+   <style type="text/css">
+     #t { border: 1px solid blue }
+     #t1 { background-color: pink; }
+   </style>
+   <script type="text/javascript" src="TestLib.js"></script>
+   <script type="text/javascript">
+
+// Function to be executed in reaction to double click.
+   
+   function reacttodblclick() {
+     var t2 = document.getElementById("t10");
+     t2.firstChild.nodeValue = "You just double clicked on this table";    
+   }
+ 
+// Function to add a listener to the element.
+
+   function addListener() { 
+     var el = document.getElementById("t"); 
+	 //TestLib.addEvent(el, "dblclick", reacttodblclick, false);
+	 TestLib.addEvent(el, 'dblclick', reacttodblclick, false);
+     //el.addEventListener("dblclick", reacttodblclick, false); 
+   } 
+  </script> 
+ </head> 
+ <body onload="addListener();"> 
+ <center><table id="t">
+   <tr><td id="t1">Row 1, Cell 1</td><td id="t6">Row 1, Cell 2</td></tr> 
+   <tr><td id="t2">Row 2, Cell 1</td><td id="t7">Row 2, Cell 2</td></tr> 
+   <tr><td id="t3">Row 3, Cell 1</td><td id="t8">Row 3, Cell 2</td></tr>    
+   <tr><td id="t4">Row 4, Cell 1</td><td id="t9">Row 4, Cell 2</td></tr>
+   <tr><td id="t5">Row 5, Cell 1</td><td id="t10">This Value should change as you double click on this table.</td></tr>   
+ </table></center>
+ </body> 
+ </html> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mouseover-template.html	Thu Jul 17 03:20:43 2008 +0900
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+                     "http://www.w3.org/TR/html4/loose.dtd">
+<html> 
+  <!-- Test Name: mouseover-002  -->
+  <!-- Purpose - Evaluate a user generated mouseover event over a table element -->
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+    <title>DOM Events API Test Suite - mouseover-002</title>
+    <style>
+      #result:after {
+        display: block;
+      }
+      .not_yet_tested:after {
+        background-color: yellow;
+        content: "Not yet tested";
+      }
+      .failed:after {
+        background-color: red;
+        content: "Failed";
+      }
+      .passed:after {
+        background-color: green;
+        content: "Passed";
+      }
+    </style>
+    <script type="text/javascript">
+      // Function to begin the test.
+      function w3c_beginTest() {
+        w3c_addEventListener();
+        if ("vendor_beginTest" in window) {
+          vendor_beginTest();
+        }
+        if ("vendor_testMouseOver" in window) {
+          vendor_testMouseOver("tb1");
+        }
+      }
+
+      // Function to end the test.
+      function w3c_endTest() {
+        if ("vendor_endTest" in window) {
+          vendor_endTest();
+        }
+      }
+
+      // Function to report test result.
+      function w3c_reportResult(passed) {
+         document.getElementById("result").
+           setAttribute("class", passed ? "passed" : "failed");
+         if ("vendor_reportResult" in window) {
+           vendor_reportResult(passed);
+         }
+         w3c_endTest();
+      }
+
+      // Function to be executed in reaction to mouseover.
+      function w3c_reactToMouseover() {
+         w3c_removeEventListener();
+         w3c_reportResult(true);
+      }
+
+      // Function to add a listener to the element.
+      function w3c_addEventListener() {
+        var e1 = document.getElementById("tb1");
+        if (document.addEventListener) {  
+          e1.addEventListener("mouseover", w3c_reactToMouseover, false);
+        } else { 
+          e1.attachEvent("on"+"mouseover", w3c_reactToMouseover());
+        }
+      }
+
+      // Function to remove a listener from the element.
+      function w3c_removeEventListener() {
+        var e1 = document.getElementById("tb1");
+        if (document.removeEventListener) {  
+          e1.removeEventListener("mouseover", w3c_reactToMouseover, false);
+        } else { 
+          e1.detachEvent("on"+"mouseover", w3c_reactToMouseover());
+        }
+      }
+    </script>
+    <script type="text/javascript" src="vendor_functions.js"></script>
+  </head>
+  <body onload="w3c_beginTest();">
+    <h3>move the mouse over the elements below</h3>
+    <table id="tb1">
+      <tr><td id="t1">Row 1, Cell 1</td><td id="t6">Row 1, Cell 2</td></tr> 
+      <tr><td id="t2">Row 2, Cell 1</td><td id="t7">Row 2, Cell 2</td></tr> 
+      <tr><td id="t3">Row 3, Cell 1</td><td id="t8">Row 3, Cell 2</td></tr>    
+      <tr><td id="t4">Row 4, Cell 1</td><td id="t9">Row 4, Cell 2</td></tr>
+      <tr><td id="t5">Row 5, Cell 1</td><td id="t10">Row 5, Cell 2</td></tr>   
+    </table>
+    <div id="result" class="not_yet_tested"></div>
+  </body> 
+</html> 
\ No newline at end of file