Fixed tts-1838 to integrate 29 TCs into tct-webmessaging-w3c-tests
authorCui, Jieqiong <jieqiongx.cui@intel.com>
Tue, 6 Aug 2013 02:13:46 +0000 (10:13 +0800)
committerwanmingx.lin <wanmingx.lin@intel.com>
Wed, 7 Aug 2013 04:38:18 +0000 (12:38 +0800)
from https://github.com/w3c/web-platform-tests (commit 944356fc3e50ed67bd94895d43cf5212aba1594b)

Signed-off-by: Cui, Jieqiong <jieqiongx.cui@intel.com>
tct-webmessaging-w3c-tests/tests.xml
tct-webmessaging-w3c-tests/webmessaging/w3c/MessageEvent_properties.htm [new file with mode: 0644]
tct-webmessaging-w3c-tests/webmessaging/w3c/postMessage_MessagePorts_sorigin.htm [new file with mode: 0644]
tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html [new file with mode: 0644]
tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html [new file with mode: 0644]

index e0519919b784a689dcd5f0b580497a42c2313926..70449e7fea258ba6df4712ed85ab36d7fd94bae8 100644 (file)
           </spec>
         </specs>
       </testcase>
+      <testcase purpose="Check if create an event that uses the MessageEvent interface, with the event type message, which does not bubble, is not cancelable, and has no default action" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="MessageEvent_properties.htm">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if let target port be the port with which source port is entangled</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/MessageEvent_properties.htm</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if postMessage to same-origin iframe with MessagePort array containing 100 ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="postMessage_MessagePorts_sorigin_1">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check that the basic usage of messagechannel method with cross-document channel</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/postMessage_MessagePorts_sorigin.htm?total_num=2&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if messageChannel is supported" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="postMessage_MessagePorts_sorigin_2">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method  resolve broken url without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/postMessage_MessagePorts_sorigin.htm?total_num=2&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to undefined without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_1">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'data:' without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to regex without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_10">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method resolve 'example.org' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=10</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to self without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_11">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method resolve special value '/' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=11</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to error without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_14">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method resolve special value '*' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=14</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to unreached without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_15">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method post an imagedata (from a cloned canvas) in an array with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=15</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to null without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_2">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'about:blank' without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to false without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_3">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'javascript:' without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to true without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_4">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'scheme/host/port' without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to 1 without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_5">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the object clone with own properties only</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to NaN without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_6">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if throw an exception if function values encountered without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to Infinity without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_7">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the object clone with preserving sharing without ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=7</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to string without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_8">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method  resolve broken url with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=8</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to date without ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="without-ports_010_9">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method resolve url with stuff in host-specific with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html?total_num=15&amp;locator_key=id&amp;value=9</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to undefined with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_1">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'about:blank' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to regex with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_10">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports4</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=10</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to self with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_11">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports5</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=11</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to error with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_14">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports8</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=14</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to unreached with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_15">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports9</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=15</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to null with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_2">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'javascript:' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to false with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_3">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set origin of the script that invoked the method 'scheme/host/port' with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to true with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_4">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set null ports with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to 1 with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_5">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set undefined as ports with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to NaN with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_6">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to Infinity with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_7">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports1</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=7</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to string with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_8">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports2</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=8</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the e.data is equals to date with ports" type="compliance" status="approved" component="WebAPI/Communication/HTML5 Web Messaging" execution_type="auto" priority="P2" id="with-ports_010_9">
+        <description>
+          <pre_condition/>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>Check if the postMessage method set message channel as ports with ports3</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html?total_num=15&amp;locator_key=id&amp;value=9</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="postMessage" interface="MessagePort" specification="HTML5 Web Messaging" section="Communication" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/CR-webmessaging-20120501/#dom-messageport-postmessage</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
     </set>
   </suite>
 </test_definition>
diff --git a/tct-webmessaging-w3c-tests/webmessaging/w3c/MessageEvent_properties.htm b/tct-webmessaging-w3c-tests/webmessaging/w3c/MessageEvent_properties.htm
new file mode 100644 (file)
index 0000000..d1e31a2
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> MessageEvent interface and properties </title>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<div style="display:none">
+    <iframe width="70%" onload="PostMessageTest()" src="./support/ChildWindowPostMessage.htm"></iframe>
+</div>
+
+<script>
+    setup({timeout:500});
+    
+    var description = "Test Description: " +
+            "Create an event that uses the MessageEvent interface, with the event type message, " +
+            "which does not bubble, is not cancelable, and has no default action.";
+    
+    var t = async_test(description);
+                
+    var DATA = "foo";
+    var TARGET = document.querySelector("iframe");
+    var ExpectedResult = [true, true, false, false, false];
+    var ActualResult = [];
+                
+    function PostMessageTest()
+    {
+        TARGET.contentWindow.postMessage(DATA, "*");
+    }
+    
+    window.addEventListener("message", t.step_func(function(e)
+    {
+        e.preventDefault();
+        
+        ActualResult = [(e instanceof MessageEvent), (e.type == "message"), e.bubbles, e.cancelable, e.defaultPrevented];
+        
+        assert_array_equals(ActualResult, ExpectedResult, "ActualResult");
+        
+        t.done();
+        
+    }), false);
+</script>
+</body>
+</html>
diff --git a/tct-webmessaging-w3c-tests/webmessaging/w3c/postMessage_MessagePorts_sorigin.htm b/tct-webmessaging-w3c-tests/webmessaging/w3c/postMessage_MessagePorts_sorigin.htm
new file mode 100644 (file)
index 0000000..7405c76
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> postMessage to same-origin iframe with MessagePort array [100 ports] </title>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<div style="display:none">
+    <iframe width="70%" onload="PostMessageTest()" src="./support/ChildWindowPostMessage.htm"></iframe>
+</div>
+
+<script>
+    setup({timeout:500});
+    
+    var description = "Test Description: postMessage to same-origin iframe with MessagePort array containing 100 ports.";
+    
+    var t = async_test(description);
+    
+    var TOTALPORTS = 100;
+    var LocalPorts = [];
+    var RemotePorts = [];
+    var PassedResult = 0;
+    var sum = 0;
+    var TARGET = document.querySelector("iframe").contentWindow;
+    
+    function PostMessageTest()
+    {
+        test(function()
+        {
+            assert_own_property(window, "MessageChannel", "window");
+            
+            var channels = [];
+            
+            for (var i=0; i<TOTALPORTS; i++)
+            {
+                channels[i] = new MessageChannel();
+                LocalPorts[i] = channels[i].port1;
+                LocalPorts[i].foo = i;
+                RemotePorts[i] = channels[i].port2;
+                
+                LocalPorts[i].onmessage = t.step_func(function(e)
+                {
+                    assert_equals(e.target.foo, e.data);
+                    
+                    PassedResult++;
+                    sum += e.data;
+                    
+                    if (PassedResult == TOTALPORTS)
+                    {
+                        assert_equals(sum, 4950);
+                        t.done();
+                    }
+                });
+            }
+            
+            TARGET.postMessage("ports", "*", RemotePorts);
+            
+        }, "MessageChannel is supported.");
+    }
+    
+    window.onmessage = function(e)
+    {
+        if (e.data === "ports")
+        {
+            for (var i=0; i<TOTALPORTS; i++)
+            {
+                LocalPorts[i].postMessage(LocalPorts[i].foo);
+            } 
+        }
+    }
+</script>
+</body>
+</html>
diff --git a/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html b/tct-webmessaging-w3c-tests/webmessaging/w3c/with-ports/010.html
new file mode 100644 (file)
index 0000000..66e1fcc
--- /dev/null
@@ -0,0 +1,165 @@
+<!doctype html>
+<title>message clone</title>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+function sameDate(d1, d2)
+{
+  return (d1 instanceof Date && d2 instanceof Date && d1.valueOf() == d2.valueOf());
+}
+
+function sameRE(r1, r2)
+{
+  return (r1 instanceof RegExp && r2 instanceof RegExp && r1.toString() == r2.toString());
+}
+
+function assert_array_equals_(observed, expected, msg)
+{
+  if (observed.length == expected.length)
+  {
+     for (var i = 0; i < observed.length; i++)
+         if (observed[i] instanceof Date)
+    {
+      expected[i] = true;
+      observed[i] = sameDate(observed[i], expected[i]);
+  }
+         else if (observed[i] instanceof RegExp)
+         {
+             expected[i] = true;
+             observed[i] = sameRE(observed[i], expected[i]);
+         }
+  }
+
+  assert_array_equals(observed, expected, msg);
+}
+
+function assert_object_equals_(observed, expected, msg)
+{
+  for (var p in observed)
+  {
+      if (observed[p] instanceof Date)
+      {
+         expected[p] = true;
+         observed[p] = sameDate(observed[p], expected[p]);
+      }
+      else if (observed[p] instanceof RegExp)
+      {
+         expected[p] = true;
+         observed[p] = sameRE(observed[p], expected[p]);
+      }
+      else if (observed[p] instanceof Array || String(observed[p]) === '[object Object]')
+      {
+         expected[p] = true;
+         observed[p] = String(observed[p]) === String(expected[p]);
+      }
+      assert_equals(observed[p], expected[p], msg);
+  }
+}
+
+  var err = new Error('foo');
+  var date = new Date();
+
+  var test_array = [ undefined,
+                     null,
+                     false,
+                     true,
+                     1,
+                     NaN,
+                     Infinity,
+                     'foo',
+                     date,
+                     /foo/,
+                     null/*self*/,
+                     null/*err*/];
+
+  var cloned_array = [ undefined,
+                       null,
+                       false,
+                       true,
+                       1,
+                       NaN,
+                       Infinity,
+                       'foo',
+                       date,
+                       /foo/,
+                       null/*self*/,
+                       null/*err*/];
+
+  var test_object = {a: undefined,
+                     b: null,
+                     c: false,
+                     d: true,
+                     e: 1,
+                     f: NaN,
+                     g: Infinity,
+                     h: 'foo',
+                     i: date,
+                     j: /foo/,
+                     k: null/*self*/,
+                     l: [],
+                     m: {},
+                     n: null /*err*/};
+
+  var cloned_object = {a:undefined, b:null, c:false, d:true, e:1, f:NaN, g:Infinity, h:'foo', i: date, j: /foo/,  k:null, l: [], m: {}, n:null};
+
+  var tests = [undefined, null,
+               false, true,
+               1, NaN, Infinity,
+               'foo',
+               date,
+               /foo/,
+               /* ImageData, File, FileData, FileList, */
+               null /*self*/,
+               test_array,
+               test_object,
+               null /*err*/];
+
+  for (var i = 0; i < tests.length; ++i) {
+    postMessage(tests[i], '*', []);
+  }
+  
+  var test_undefined = async_test('undefined');
+  var test_null = async_test('null');
+  var test_false = async_test('false');
+  var test_true = async_test('true');
+  var test_1 = async_test('1');
+  var test_NaN = async_test('NaN');
+  var test_Infinity = async_test('Infinity');
+  var test_string = async_test('string');
+  var test_date = async_test('date');
+  var test_regex = async_test('regex');
+  var test_self = async_test('self');
+  var test_array = async_test('array');
+  var test_object = async_test('object');
+  var test_error = async_test('error');
+  var test_unreached = async_test('unreached');
+
+  var j = 0;
+  onmessage = function(e) {
+    switch (j) {
+      case 0: test_undefined.step(function() { assert_equals(e.data, undefined); this.done(); }); break;
+      case 1: test_null.step(function() { assert_equals(e.data, null); this.done(); }); break;
+      case 2: test_false.step(function() { assert_false(e.data); this.done(); }); break;
+      case 3: test_true.step(function() { assert_true(e.data); this.done(); }); break;
+      case 4: test_1.step(function() { assert_equals(e.data, 1); this.done(); }); break;
+      case 5: test_NaN.step(function() { assert_equals(e.data, NaN); this.done(); }); break;
+      case 6: test_Infinity.step(function() { assert_equals(e.data, Infinity); this.done(); }); break;
+      case 7: test_string.step(function() { assert_equals(e.data, 'foo'); this.done(); }); break;
+      case 8: test_date.step(function() { assert_true(sameDate(e.data, date)); this.done(); }); break;
+      case 9: test_regex.step(function() { assert_equals('' + e.data, '/foo/'); assert_equals(e.data instanceof RegExp, true, 'e.data instanceof RegExp'); this.done(); }); break;
+      // not testing it any more, as cloning host objects will now raise exceptions. TODO: add (exceptional) tests for these.
+      case 10: test_self.step(function() { assert_equals(e.data, null); this.done(); }); break;
+      case 11: test_array.step(function() { assert_array_equals_(e.data, cloned_array, 'array'); this.done(); }); break;
+      case 12: test_object.step(function() { assert_object_equals_(e.data, cloned_object, 'object'); this.done(); }); break;
+      case 13:
+        test_error.step(function() { assert_equals(e.data, null, 'new Error()'); this.done(); });
+        setTimeout(test_unreached.step_func(function() { assert_equals(j, 14); this.done(); }), 50);
+        break;
+      default: test_unreached.step(function() { assert_unreached('got an unexpected message event ('+i+')'); }); 
+    };
+    j++;
+  }
+
+  
+</script>
diff --git a/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html b/tct-webmessaging-w3c-tests/webmessaging/w3c/without-ports/010.html
new file mode 100644 (file)
index 0000000..8ba8b50
--- /dev/null
@@ -0,0 +1,164 @@
+<!doctype html>
+<title>message clone</title>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+function sameDate(d1, d2)
+{
+  return (d1 instanceof Date && d2 instanceof Date && d1.valueOf() == d2.valueOf());
+}
+
+function sameRE(r1, r2)
+{
+  return (r1 instanceof RegExp && r2 instanceof RegExp && r1.toString() == r2.toString());
+}
+
+function assert_array_equals_(observed, expected, msg)
+{
+  if (observed.length == expected.length)
+  {
+     for (var i = 0; i < observed.length; i++)
+         if (observed[i] instanceof Date)
+    {
+      expected[i] = true;
+      observed[i] = sameDate(observed[i], expected[i]);
+  }
+         else if (observed[i] instanceof RegExp)
+         {
+             expected[i] = true;
+             observed[i] = sameRE(observed[i], expected[i]);
+         }
+  }
+
+  assert_array_equals(observed, expected, msg);
+}
+
+function assert_object_equals_(observed, expected, msg)
+{
+  for (var p in observed)
+  {
+      if (observed[p] instanceof Date)
+      {
+         expected[p] = true;
+         observed[p] = sameDate(observed[p], expected[p]);
+      }
+      else if (observed[p] instanceof RegExp)
+      {
+         expected[p] = true;
+         observed[p] = sameRE(observed[p], expected[p]);
+      }
+      else if (observed[p] instanceof Array || String(observed[p]) === '[object Object]')
+      {
+         expected[p] = true;
+         observed[p] = String(observed[p]) === String(expected[p]);
+      }
+      assert_equals(observed[p], expected[p], msg);
+  }
+}
+
+  var err = new Error('foo');
+  var date = new Date();
+
+  var test_array = [ undefined,
+                     null,
+                     false,
+                     true,
+                     1,
+                     NaN,
+                     Infinity,
+                     'foo',
+                     date,
+                     /foo/,
+                     null/*self*/,
+                     null/*err*/];
+
+  var cloned_array = [ undefined,
+                       null,
+                       false,
+                       true,
+                       1,
+                       NaN,
+                       Infinity,
+                       'foo',
+                       date,
+                       /foo/,
+                       null/*self*/,
+                       null/*err*/];
+
+  var test_object = {a: undefined,
+                     b: null,
+                     c: false,
+                     d: true,
+                     e: 1,
+                     f: NaN,
+                     g: Infinity,
+                     h: 'foo',
+                     i: date,
+                     j: /foo/,
+                     k: null/*self*/,
+                     l: [],
+                     m: {},
+                     n: null /*err*/};
+
+  var cloned_object = {a:undefined, b:null, c:false, d:true, e:1, f:NaN, g:Infinity, h:'foo', i: date, j: /foo/,  k:null, l: [], m: {}, n:null};
+
+  var tests = [undefined, null,
+               false, true,
+               1, NaN, Infinity,
+               'foo',
+               date,
+               /foo/,
+               /* ImageData, File, FileData, FileList, */
+               null /*self*/,
+               test_array,
+               test_object,
+               null /*err*/];
+
+  for (var i = 0; i < tests.length; ++i) {
+    postMessage(tests[i], '*');
+  }
+  
+  var test_undefined = async_test('undefined');
+  var test_null = async_test('null');
+  var test_false = async_test('false');
+  var test_true = async_test('true');
+  var test_1 = async_test('1');
+  var test_NaN = async_test('NaN');
+  var test_Infinity = async_test('Infinity');
+  var test_string = async_test('string');
+  var test_date = async_test('date');
+  var test_regex = async_test('regex');
+  var test_self = async_test('self');
+  var test_array = async_test('array');
+  var test_object = async_test('object');
+  var test_error = async_test('error');
+  var test_unreached = async_test('unreached');
+
+  var j = 0;
+  onmessage = function(e) {
+    switch (j) {
+      case 0: test_undefined.step(function() { assert_equals(e.data, undefined); this.done(); }); break;
+      case 1: test_null.step(function() { assert_equals(e.data, null); this.done(); }); break;
+      case 2: test_false.step(function() { assert_false(e.data); this.done(); }); break;
+      case 3: test_true.step(function() { assert_true(e.data); this.done(); }); break;
+      case 4: test_1.step(function() { assert_equals(e.data, 1); this.done(); }); break;
+      case 5: test_NaN.step(function() { assert_equals(e.data, NaN); this.done(); }); break;
+      case 6: test_Infinity.step(function() { assert_equals(e.data, Infinity); this.done(); }); break;
+      case 7: test_string.step(function() { assert_equals(e.data, 'foo'); this.done(); }); break;
+      case 8: test_date.step(function() { assert_true(sameDate(e.data, date)); this.done(); }); break;
+      case 9: test_regex.step(function() { assert_equals('' + e.data, '/foo/'); assert_equals(e.data instanceof RegExp, true, 'e.data instanceof RegExp'); this.done(); }); break;
+      // not testing it any more, as cloning host objects will now raise exceptions. TODO: add (exceptional) tests for these.
+      case 10: test_self.step(function() { assert_equals(e.data, null); this.done(); }); break;
+      case 11: test_array.step(function() { assert_array_equals_(e.data, cloned_array, 'array'); this.done(); }); break;
+      case 12: test_object.step(function() { assert_object_equals_(e.data, cloned_object, 'object'); this.done(); }); break;
+      case 13:
+        test_error.step(function() { assert_equals(e.data, null, 'new Error()'); this.done(); });
+        setTimeout(test_unreached.step_func(function() { assert_equals(j, 14); this.done(); }), 50);
+        break;
+      default: test_unreached.step(function() { assert_unreached('got an unexpected message event ('+i+')'); }); 
+    };
+    j++;
+  }
+
+</script>