[common][tct-geoallow-w3c-tests][Testcase sync from Suprem] 66/93666/1
authorchenfangyuan <fangyuan.ch@samsung.com>
Tue, 25 Oct 2016 07:59:43 +0000 (15:59 +0800)
committerchenfangyuan <fangyuan.ch@samsung.com>
Tue, 25 Oct 2016 07:59:55 +0000 (15:59 +0800)
Change-Id: Id7d14f42e7f986beac730e074fe71f47e851e325
Signed-off-by: chenfangyuan <fangyuan.ch@samsung.com>
247 files changed:
common/tct-geoallow-w3c-tests/COPYING [new file with mode: 0755]
common/tct-geoallow-w3c-tests/README [new file with mode: 0755]
common/tct-geoallow-w3c-tests/config.xml [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_value_default.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_100.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_PERMISSION_DENIED_constExist.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_POSITION_UNAVAILABLE_constExist.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_TIMEOUT_constExist.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_empty.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_no_argument.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_zero.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_2000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_cached_position.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_no_argument.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_example_one_short.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_method_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_operation_completed.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_null_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_no_argument.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_timer_timeout.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_Neg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_Neg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_cached_position.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_error_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_no_argument.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_example_repeated_position.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_operation_completed.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_null_options_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_first_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_timer_timeout.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_before_callbacks.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_Default_value.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_Default_value.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_Default_value.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_code_TIMEOUT.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_Err.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0Age0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0AgeNeg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOutNegAge0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_Err.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0Age0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0AgeNeg.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOutNegAge0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionError_message_with_getCurrentPosition_timeOut0Age0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_false.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_true.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_number.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_coords_return_type.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_exists.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_0.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_100.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_60000.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_empty_string.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_readonly.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_set_null.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/testinterface.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/COPYING [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/OWNERS [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/Overview.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/clearWatch_TypeError.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/common.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/style.css [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/support.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/t.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/t00002.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/t00031.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/t00062.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/icon.png [new file with mode: 0755]
common/tct-geoallow-w3c-tests/inst.apk.py [new file with mode: 0755]
common/tct-geoallow-w3c-tests/inst.wgt.py [new file with mode: 0755]
common/tct-geoallow-w3c-tests/inst.xpk.py [new file with mode: 0755]
common/tct-geoallow-w3c-tests/manifest.json [new file with mode: 0755]
common/tct-geoallow-w3c-tests/pack.py [new file with mode: 0755]
common/tct-geoallow-w3c-tests/resources/COPYING [new file with mode: 0755]
common/tct-geoallow-w3c-tests/resources/testharness.css [new file with mode: 0755]
common/tct-geoallow-w3c-tests/resources/testharness.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/resources/testharnessreport.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/suite.json [new file with mode: 0755]
common/tct-geoallow-w3c-tests/testcase.xsl [new file with mode: 0755]
common/tct-geoallow-w3c-tests/testresult.xsl [new file with mode: 0755]
common/tct-geoallow-w3c-tests/tests.css [new file with mode: 0755]
common/tct-geoallow-w3c-tests/tests.full.xml [new file with mode: 0755]
common/tct-geoallow-w3c-tests/tests.xml [new file with mode: 0755]
common/tct-geoallow-w3c-tests/webrunner/index.html [new file with mode: 0755]
common/tct-geoallow-w3c-tests/webrunner/jquery-1.10.2.min.js [new file with mode: 0755]
common/tct-geoallow-w3c-tests/webrunner/testrunner.js [new file with mode: 0755]

diff --git a/common/tct-geoallow-w3c-tests/COPYING b/common/tct-geoallow-w3c-tests/COPYING
new file mode 100755 (executable)
index 0000000..68870ce
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
diff --git a/common/tct-geoallow-w3c-tests/README b/common/tct-geoallow-w3c-tests/README
new file mode 100755 (executable)
index 0000000..adb8dac
--- /dev/null
@@ -0,0 +1,76 @@
+----------------------------------------------
+License
+----------------------------------------------
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Lin, Wanming <wanmingx.lin@intel.com>
+
+
+
+----------------------------------------------
+Introduction
+---------------------------------------------
+This test suite is for testing W3C Geolocation module, which covers the following specification:
+http://www.w3.org/TR/2012/PR-geolocation-API-20120510
+
+
+----------------------------------------------
+Test Environment
+----------------------------------------------
+1. Pre-install Testkit-Lite package.
+2. Run these cases as "normal" user.
+
+
+----------------------------------------------
+Pre-conditions
+----------------------------------------------
+For the geoallow auto TCs testing on SLP:
+1. Please enable GPS or connect to an available network;
+
+
+----------------------------------------------
+Build and Run
+----------------------------------------------
+(Suppose you only get the source code and Testkit-Lite has been set up on your test machine.
+ If you have obtained tct-geoallow-w3c-tests ZIP packages, you can directly go to step 3 on the test machine;
+ if you have not installed Testkit-Lite, you need to install the latest version.)
+
+Steps:
+1. Prepare for building by running the following command:
+   cd tct-geoallow-w3c-tests
+
+2. Build ZIP package by running the following command:
+   ./pack.sh
+
+3. Unzip the package on the test machine by running the following command:
+   unzip -o tct-geoallow-w3c-tests-<version>.zip -d /home/owner/share/tct
+
+4. Install the package on the test machine by running the following command:
+   /home/owner/share/tct/opt/tct-geoallow-w3c-tests/inst.sh
+
+5. Run test cases by running the following command on host:
+   testkit-lite -f device:/home/owner/share/tct/opt/tct-geoallow-w3c-tests/tests.xml -e "WRTLauncher" -o tct-geoallow-w3c-tests.results.xml
diff --git a/common/tct-geoallow-w3c-tests/config.xml b/common/tct-geoallow-w3c-tests/config.xml
new file mode 100755 (executable)
index 0000000..4f3ec72
--- /dev/null
@@ -0,0 +1,9 @@
+<widget id='http://tizen.org/test/tct-geoallow-w3c-tests' xmlns='http://www.w3.org/ns/widgets' xmlns:tizen='http://tizen.org/ns/widgets' version='3.0'>
+  <access origin="*"/>
+  <icon src="icon.png" height="117" width="117"/>
+  <name>tct-geoallow-w3c-tests</name>
+  <tizen:application id="w3cgeoallo.WebAPIW3CGeoallowTests" package="w3cgeoallo" required_version="3.0"/>
+  <tizen:setting screen-orientation="landscape"/>
+  <tizen:privilege name="http://tizen.org/privilege/location"/>
+  <tizen:privilege name="http://tizen.org/privilege/internet"/>
+</widget>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy.html
new file mode 100755 (executable)
index 0000000..e67cc0d
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_accuracy</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute accuracy of interface Coordinates is comparison" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        var coords = position.coords;
+        var accuracy = coords.accuracy;
+        t.step(function () {
+          assert_true(coords != null && accuracy != null, "the attribute accuracy of interface Coordinates is comparison");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_exists.html
new file mode 100755 (executable)
index 0000000..1f85bfc
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_accuracy_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute accuracy value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("accuracy" in position.coords, "the attribute accuracy value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..cb0d003
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_accuracy_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute accuracy value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_accuracy = position.coords.accuracy + offset;
+          position.coords.accuracy = temp_accuracy;
+          assert_true(position.coords.accuracy != temp_accuracy, "the attribute accuracy value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..1951852
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_accuracy_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute accuracy value of interface Coordinates set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.accuracy = null;
+          assert_false(position.coords.accuracy == null, "the attribute accuracy value of interface Coordinates set null");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_value_default.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_value_default.html
new file mode 100755 (executable)
index 0000000..67da39c
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu, Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test: Coordinates_accuracy_attribute_value_default</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the default value of attribute accuracy of interface Coordinates is a non-negative real number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      }  catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position.coords.accuracy >= 0, "the default value of attribute accuracy of interface Coordinates is a non-negative real number");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..48e3151
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitudeAccuracy_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test("Check if the attribute altitudeAccuracy value of interface Coordinates set empty string");
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.altitudeAccuracy = "";
+          //regular matching (e.g. +12.3 -23.63 16.36 1533.6M etc)
+          var reg = new RegExp("^\-*\\+*[0-9]+.*");
+          assert_true(reg.test(position.coords.altitudeAccuracy), "altitudeAccuracy value should be specified in meters");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_exists.html
new file mode 100755 (executable)
index 0000000..56a3bce
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitudeAccuracy_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute altitudeAccuracy value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position){
+        t.step(function () {
+          assert_true("altitudeAccuracy" in position.coords, "the attribute altitudeAccuracy value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function  unexpectederrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..1714c13
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitudeAccuracy_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute altitudeAccuracy value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position){
+        t.step(function () {
+          var offset = 1;
+          var temp_altitudeAccuracy = position.coords.altitudeAccuracy + offset;
+          position.coords.altitudeAccuracy = temp_altitudeAccuracy;
+          assert_true(position.coords.altitudeAccuracy != temp_altitudeAccuracy, "the attribute altitudeAccuracy value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..a0767f4
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitudeAccuracy_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test("Check if the attribute altitudeAccuracy value of interface Coordinates set null");
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position){
+        t.step(function () {
+          position.coords.altitudeAccuracy == null;
+          //regular matching (e.g. +12.3 -23.63 16.36 1533.6M etc)
+          var reg = new RegExp("^\-*\\+*[0-9]+.*");
+          assert_true(reg.test(position.coords.altitudeAccuracy), "altitudeAccuracy value should be specified in meters");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..a16fbdd
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitude_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test("Check if the attribute altitude value of interface Coordinates set empty string");
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.altitude = "";
+          //regular matching (e.g. +12.3 -23.63 16.36 1533.6M etc)
+          var reg = new RegExp("null|^\-*\\+*[0-9]+.*");
+          assert_true(reg.test(position.coords.altitude), "altitude value should be specified in meters");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_exists.html
new file mode 100755 (executable)
index 0000000..53b0290
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitude_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute altitude value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("altitude" in position.coords, "the attribute altitude value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+     }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..7f89ec6
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitude_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="flags" content="interact" />
+    <meta name="assert" content="Check if the attribute altitude value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_altitude = position.coords.altitude + offset;
+          position.coords.altitude = temp_altitude;
+          assert_true(position.coords.altitude != temp_altitude, "the attribute altitude value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..872bd4b
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_altitude_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test("Check if the attribute altitude value of interface Coordinates set null");
+      setup({timeout: 20000});
+      try {
+          navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.altitude = null;
+          //regular matching (e.g. +12.3 -23.63 16.36 1533.6M etc)
+          var reg = new RegExp("null|^\-*\\+*[0-9]+.*");
+          assert_true(reg.test(position.coords.altitude), "altitude value should be specified in meters");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_0.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_0.html
new file mode 100755 (executable)
index 0000000..43ba85a
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_attribute_timeout_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if will get Coordinates attribute return value when set timeout to 0" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, {timeout: 0});
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("successCallback should not be invoked");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "The timeout error occurred");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_100.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_100.html
new file mode 100755 (executable)
index 0000000..372e2e4
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_attribute_timeout_100</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if will get Coordinates attribute return value when set timeout to 100" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, {timeout: 100});
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("successCallback should not be invoked");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "The timeout error occurred");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_60000.html
new file mode 100755 (executable)
index 0000000..c0a4913
--- /dev/null
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_attribute_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if will get Coordinates attribute return value when set timeout to 60000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, {timeout: 60000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        var coords = position.coords;
+        t.step(function () {
+          assert_true(coords.accuracy == null || isNaN(coords.accuracy) || coords.accuracy >= 0, "should get Coordinates.accuracy");
+          assert_true(coords.altitudeAccuracy == null || isNaN(coords.altitudeAccuracy) || coords.altitudeAccuracy >= 0, "should get Coordinates.altitudeAccuracy");
+          assert_true(coords.altitude == null || isNaN(coords.altitude) || coords.altitude >= 0, "should get Coordinates.altitude");
+          assert_true(coords.heading == null || isNaN(coords.heading) || coords.heading >= 0, "should get Coordinates.heading");
+          assert_true(coords.latitude == null || isNaN(coords.latitude) || coords.latitude >= 0, "should get Coordinates.latitude");
+          assert_true(coords.longitude == null || isNaN(coords.longitude) || coords.longitude >= 0, "should get Coordinates.longitude");
+          assert_true(coords.speed == null || isNaN(coords.speed) || coords.speed >= 0, "should get Coordinates.speed");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..ce1170e
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+        Wei Ji <wei.ji@samsung.com>
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_heading_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+setup({timeout: 90000});
+var t = async_test(document.title, {timeout: 90000}), successCB, errorCB, reg;
+
+t.step(function () {
+    successCB = t.step_func(function (position) {
+        position.coords.heading = "";
+        if (position.coords.speed == 0) {
+            assert_equals(position.coords.heading, NaN, "the value of the speed attribute is 0, then the value of the heading attribute must be NaN.");
+        } else if (position.coords.heading != null){
+            //regular matching (e.g. 0<=reg<360 etc)
+            reg = new RegExp("^(((\\d|[1-9]\\d|[1-2]\\d{2}|3[0-5]\\d)(\\.\\d+)?)|360(\\.0+)?)$");
+            assert_true(reg.test(position.coords.heading), "the value of the heading attribute is specified in degrees, where 0° â‰¤ heading < 360°");
+        }
+        t.done();
+    });
+
+    errorCB = t.step_func(function (error) {
+        assert_unreached("Error message: { " + error.message + " }");
+    });
+
+    navigator.geolocation.getCurrentPosition(successCB, errorCB);
+});
+
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_exists.html
new file mode 100755 (executable)
index 0000000..424eef9
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_heading_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute heading value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("heading" in position.coords, "Check if the attribute heading value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..4be5eb2
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_heading_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute heading value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_heading = position.coords.heading + offset;
+          position.coords.heading = temp_heading;
+          assert_true(position.coords.heading != temp_heading, "the attribute heading value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..5363e0f
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+        Wei Ji <wei.ji@samsung.com>
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_heading_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+setup({timeout: 90000});
+var t = async_test(document.title, {timeout: 90000}), successCB, errorCB, reg;
+
+t.step(function () {
+    successCB = t.step_func(function (position) {
+        if (position.coords.heading != null) {
+            position.coords.heading = null;
+            if (position.coords.speed == 0) {
+                assert_equals(position.coords.heading, NaN, "the value of the speed attribute is 0, then the value of the heading attribute must be NaN.");
+            } else {
+                //regular matching (e.g. 0<=reg<360 etc)
+                reg = new RegExp("^(((\\d|[1-9]\\d|[1-2]\\d{2}|3[0-5]\\d)(\\.\\d+)?)|360(\\.0+)?)$");
+                assert_true(reg.test(position.coords.heading), "the value of the heading attribute is specified in degrees, where 0° â‰¤ heading < 360°");
+            }
+        }
+        t.done();
+    });
+
+    errorCB = t.step_func(function (error) {
+        assert_unreached("Error message: { " + error.message + " }");
+    });
+
+    navigator.geolocation.getCurrentPosition(successCB, errorCB);
+});
+
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude.html
new file mode 100755 (executable)
index 0000000..47935b4
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_latitude</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="set geographic positioning options is null on Coordinates.latitude attribute" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        var coordinates = position.coords;
+        t.step(function () {
+          if (isNaN(coordinates.latitude)) {
+            assert_true(false, "test Coordinates.latitude value is error");
+          } else {
+            assert_true(true, "test coordinates.latitude method attribute value");
+          }
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..82e15df
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_latitude_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute latitude value of interface Coordinates set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.latitude = "";
+          assert_false(position.coords.latitude == "", "the attribute latitude value of interface Coordinates set empty string");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_exists.html
new file mode 100755 (executable)
index 0000000..d81037b
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_latitude_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute latitude value of interface Coordinates is exist" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("latitude" in position.coords, "the attribute latitude value of interface Coordinates is exist");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..df88310
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_latitude_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute latitude value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_latitude = position.coords.latitude + offset;
+          position.coords.latitude = temp_latitude;
+          assert_true(position.coords.latitude != temp_latitude, "the attribute latitude value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..e6060b9
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_latitude_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute latitude value of interface Coordinates set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.latitude = null;
+          assert_false(position.coords.latitude == null, "Check if the attribute latitude value of interface Coordinates set null");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude.html
new file mode 100755 (executable)
index 0000000..136126a
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="set geographic positioning options is null on Coordinates.longitude attribute" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        var coordinates = position.coords;
+        t.step(function () {
+          if (isNaN(coordinates.longitude)) {
+            assert_true(false, "test Coordinates.longitude value is error");
+          } else {
+            assert_true(true, "test coordinates.longitude attribute value");
+          }
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..ddb4088
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude_attribute_empty_strng</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute longitude value of interface Coordinates set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.longitude = "";
+          assert_false(position.coords.longitude == "", "Check if the attribute longitude value of interface Coordinates set empty string");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_exists.html
new file mode 100755 (executable)
index 0000000..587cfa0
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute longitude value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("longitude" in position.coords, "the attribute longitude value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..3e6badf
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute longitude value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_longitude = position.coords.longitude + offset;
+          position.coords.longitude = temp_longitude;
+          assert_true(position.coords.longitude != temp_longitude, "the attribute longitude value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..891dbbd
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute longitude value of interface Coordinates set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords.longitude = null;
+          assert_false(position.coords.longitude == null,"Check if the attribute longitude value of interface Coordinates set null");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_return_type.html
new file mode 100755 (executable)
index 0000000..49de1cb
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_longitude_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute longitude of interface Coordinates return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+           assert_equals(typeof position.coords.longitude, "number", "the attribute longitude of interface Coordinates return type");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed.html
new file mode 100755 (executable)
index 0000000..37b9062
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_speed</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="set geographic positioning options is null on Coordinates.speed attribute " />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position) {
+        var coordinates = position.coords;
+        t.step(function () {
+          if (!isNaN(coordinates.speed)) {
+            assert_true(true, "Coordinates.speed method existence test");
+          } else {
+            assert_true(true, "the implementation cannot provide speed information");
+          }
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..7080c01
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+        Wei Ji <wei.ji@samsung.com>
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_speed_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+setup({timeout: 90000});
+var t = async_test(document.title, {timeout: 90000}), successCB, errorCB, reg;
+
+t.step(function () {
+    successCB = t.step_func(function (position) {
+        position.coords.speed = "";
+        if (position.coords.speed != null){
+            //regular matching (e.g. 12.56 136.6 421.323m etc)
+            reg = new RegExp("^[0-9]+.*$");
+            assert_true(reg.test(position.coords.speed), "the attribute speed value is specified in meters per second");
+        }
+        t.done();
+    });
+
+    errorCB = t.step_func(function (error) {
+        assert_unreached("Error message: { " + error.message + " }");
+    });
+
+    navigator.geolocation.getCurrentPosition(successCB, errorCB);
+});
+
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_exists.html
new file mode 100755 (executable)
index 0000000..d62969c
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_speed_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute speed value of interface Coordinates exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("speed" in position.coords, "the attribute speed value of interface Coordinates exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..e676d1c
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_speed_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates" />
+    <meta name="assert" content="Check if the attribute speed value of interface Coordinates is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_speed = position.coords.speed + offset;
+          position.coords.speed = temp_speed;
+          assert_true(position.coords.speed != temp_speed, "the attribute speed value of interface Coordinates is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: " + error.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..5fdb313
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Xinx, liu <xinx.liu@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+        Wei Ji <wei.ji@samsung.com>
+-->
+
+<html>
+  <head>
+    <title>Geolocation Test:Coordinates_speed_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/">
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates">
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+setup({timeout: 90000});
+var t = async_test(document.title, {timeout: 90000}), successCB, errorCB, reg;
+
+t.step(function () {
+    successCB = t.step_func(function (position) {
+        if (position.coords.speed != null) {
+            position.coords.speed = null;
+            //regular matching (e.g. 12.56 136.6 421.323m etc)
+            reg = new RegExp("^[0-9]+.*$");
+            assert_true(reg.test(position.coords.speed), "the attribute speed value is specified in meters per second");
+        }
+        t.done();
+    });
+
+    errorCB = t.step_func(function (error) {
+        assert_unreached("Error message: { " + error.message + " }");
+    });
+
+    navigator.geolocation.getCurrentPosition(successCB, errorCB);
+});
+
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_PERMISSION_DENIED_constExist.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_PERMISSION_DENIED_constExist.html
new file mode 100755 (executable)
index 0000000..ca43d95
--- /dev/null
@@ -0,0 +1,79 @@
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+*Redistributions of works must retain the original copyright notice, this list
+of conditions and the following disclaimer.
+*Redistributions in binary form must reproduce the original copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+*Neither the name of Intel Corporation nor the names of its contributors
+may be used to endorse or promote products derived from this work without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+-->
+
+
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_PositionError_PERMISSION_DENIED_constExist</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the const attribute PERMISSION_DENIED of interface PositionError is Exist, timeout is set to 10, enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+  <script>
+    //==== PRIORITY P1
+
+    var t = async_test(document.title);
+    setup({timeout: 20000});
+
+    try {
+      navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+    } catch(err) {
+      t.step(function() {
+        assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+    }
+
+    function expectedErrorCallback(error) {
+      if (error.POSITION_UNAVAILABLE){
+        t.done();
+      }else{
+        t.step(function() {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    }
+
+    function unexpectedSuccessCallback(position) {
+      t.step(function() {
+        assert_unreached("errorCallback should be triggered");
+      });
+      t.done();
+    }
+  </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_POSITION_UNAVAILABLE_constExist.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_POSITION_UNAVAILABLE_constExist.html
new file mode 100755 (executable)
index 0000000..634f410
--- /dev/null
@@ -0,0 +1,79 @@
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+*Redistributions of works must retain the original copyright notice, this list
+of conditions and the following disclaimer.
+*Redistributions in binary form must reproduce the original copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+*Neither the name of Intel Corporation nor the names of its contributors
+may be used to endorse or promote products derived from this work without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+-->
+
+
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_PositionError_POSITION_UNAVAILABLE_constExist</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the const attribute POSITION_UNAVAILABLE of interface PositionError is Exist, timeout is set to 10, enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+  <script>
+    //==== PRIORITY P1
+
+    var t = async_test(document.title);
+    setup({timeout: 20000});
+
+    try {
+      navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+    } catch(err) {
+      t.step(function() {
+        assert_unreached("Error message: { " + err.message + " }");
+      });
+      t.done();
+    }
+
+    function expectedErrorCallback(error) {
+      if (error.POSITION_UNAVAILABLE){
+        t.done();
+      }else{
+        t.step(function() {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    }
+
+    function unexpectedSuccessCallback(position) {
+      t.step(function() {
+        assert_unreached("errorCallback should be triggered");
+      });
+      t.done();
+    }
+  </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_TIMEOUT_constExist.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_TIMEOUT_constExist.html
new file mode 100755 (executable)
index 0000000..c5b7f10
--- /dev/null
@@ -0,0 +1,79 @@
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+*Redistributions of works must retain the original copyright notice, this list
+of conditions and the following disclaimer.
+*Redistributions in binary form must reproduce the original copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+*Neither the name of Intel Corporation nor the names of its contributors
+may be used to endorse or promote products derived from this work without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+-->
+
+
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_PositionError_TIMEOUT_constExist</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check PositionError.TIMEOUT exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+  <script>
+    //==== PRIORITY P1
+
+    var t = async_test(document.title);
+    setup({timeout: 20000});
+
+    try {
+      navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+    } catch(err) {
+      t.step(function() {
+        assert_unreached("Error message: { " + err.message + " }");
+      });
+      t.done();
+    }
+
+    function expectedErrorCallback(error) {
+      if (error.TIMEOUT){
+        t.done();
+      }else{
+        t.step(function() {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    }
+
+    function unexpectedSuccessCallback(position) {
+      t.step(function() {
+        assert_unreached("errorCallback should be triggered");
+      });
+      t.done();
+    }
+  </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_empty.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_empty.html
new file mode 100755 (executable)
index 0000000..c4b62c4
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_empty</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter is empty" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch("");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_no_argument.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_no_argument.html
new file mode 100755 (executable)
index 0000000..e98bd74
--- /dev/null
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_no_argument</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter have no argument" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.clearWatch();
+      } catch (err) {
+        t.step(function() {
+          assert_true(err != null, "call geolocation.clearWatch with no arguments, exception is thrown");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_null.html
new file mode 100755 (executable)
index 0000000..224d373
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch(null);
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_null.html
new file mode 100755 (executable)
index 0000000..f683dab
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method clearWatch value of interface Geolocation set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch(null);
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_zero.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_zero.html
new file mode 100755 (executable)
index 0000000..2823ebd
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_set_zero</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method clearWatch value of interface Geolocation set zero" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch(0);
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_empty_string.html
new file mode 100755 (executable)
index 0000000..1390e0f
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_with_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter is empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch("");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_number.html
new file mode 100755 (executable)
index 0000000..8b1c536
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_with_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter set number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch(2);
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_string.html
new file mode 100755 (executable)
index 0000000..53ca598
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_clearWatch_watchId_with_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.clearWatch() method of the first parameter set string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function () {
+          navigator.geolocation.clearWatch("test");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: " + err.message);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..12a20d1
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute position of interface Geolocation return success" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { maximumAge : 0, enableHighAccuracy : true, timeout : 10 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000.html
new file mode 100755 (executable)
index 0000000..ebf5ffb
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to 200000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 200000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000.html
new file mode 100755 (executable)
index 0000000..6742d12
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 60000,timeout is set to 2000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 2000, timeout : 60000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+ </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..e72829b
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,and MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+        
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { maximumAge : 2000, timeout : 60000, enableHighAccuracy : false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..5d147b4
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { maximumAge : 2000, timeout : 60000, enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000.html
new file mode 100755 (executable)
index 0000000..d27a27d
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to 600000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 600000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero.html
new file mode 100755 (executable)
index 0000000..c2e7152
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation, MaximumAge is set to 600000, timeout is set to 0" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { maximumAge : 600000, timeout : 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "error.code value");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000.html
new file mode 100755 (executable)
index 0000000..c191e9d
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to 700000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 700000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero.html
new file mode 100755 (executable)
index 0000000..cd37e09
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to 700000, timeout is set to 0" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+       
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { maximumAge : 700000, timeout : 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (e) {
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "The timeout occurred");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity.html
new file mode 100755 (executable)
index 0000000..43cb6e7
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute position of interface Geolocation return not null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : Infinity });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation return not null");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero.html
new file mode 100755 (executable)
index 0000000..41e9ed0
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Wei Ji <wei.ji@samsung.com>
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to Infinity, timeout is set to 0 " />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+setup({timeout: 90000});
+var t = async_test(document.title, {timeout: 90000}), successCB, errorCB;
+
+t.step(function () {
+    successCB = t.step_func(function (position) {
+        assert_not_equals(position, null, "the attribute position of interface Geolocation should not return null.");
+        t.done();
+    });
+
+    errorCB = t.step_func(function (error) {
+        assert_equals(error.code, error.TIMEOUT, "The timeout is occurred.");
+        t.done();
+    });
+
+    navigator.geolocation.getCurrentPosition(successCB, errorCB, {maximumAge: Infinity, timeout: 0});
+});
+
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg.html
new file mode 100755 (executable)
index 0000000..7600b83
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,MaximumAge is set to -2" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : -2});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string.html
new file mode 100755 (executable)
index 0000000..f7fcdb0
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge of interface PositionOptions set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : "" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation set null");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null.html
new file mode 100755 (executable)
index 0000000..057c796
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge of interface PositionOptions set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : null });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation set null");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number.html
new file mode 100755 (executable)
index 0000000..08a5f8f
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge of interface PositionOptions set number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 2 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation set number");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string.html
new file mode 100755 (executable)
index 0000000..8cd1985
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge of interface PositionOptions set string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : "a" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation set string");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero.html
new file mode 100755 (executable)
index 0000000..865b68c
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute position of interface Geolocation is not null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { maximumAge : 0 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true(position != null, "the attribute position of interface Geolocation is not null");
+        });
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..a6b6b9b
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the Geolocation.getCurrentPosition, timeout is set to 0,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 0, enableHighAccuracy : false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the Geolocation.getCurrentPosition, timeout is set to 0,enableHighAccuracy is set to false");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..e4389c5
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation, timeout is set to 0,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 0, enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the Geolocation.getCurrentPosition, timeout is set to 0, enableHighAccuracy is set to true");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..f226568
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 0,timeout is set to 0,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 0, maximumAge : 0,  enableHighAccuracy : false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the geolocation.getCurrentPosition(), MaximumAge is set to 0, timeout is set to 0, enableHighAccuracy is set to false");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..39b28cc
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 0,timeout is set to 0,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+       
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 0, maximumAge : 0,  enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the geolocation.getCurrentPosition(), MaximumAge is set to 0, timeout is set to 0, enableHighAccuracy is set to true");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_2000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_2000.html
new file mode 100755 (executable)
index 0000000..79abcdc
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+<head>
+  <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_2000</title>
+  <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+  <meta name="assert" content="Check if the method watchPosition of interface Geolocation,timeout is set to 2000" />
+  <script src="../resources/testharness.js"></script>
+  <script src="../resources/testharnessreport.js"></script>
+</head>
+<body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpecterrorCallback, { timeout : 2000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpecterrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "The timeout occurred");
+        });
+        t.done();
+      }
+    </script>
+ </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..ac307fd
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,timeout is set to 60000,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout : 60000, enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..c9d5db3
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation, MaximumAge is set to 0, timeout is set to 60000,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout : 60000, maximumAge : 0, enableHighAccuracy : false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..dbf2d36
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 0,timeout is set to 60000,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout : 60000, maximumAge : 0,  enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg.html
new file mode 100755 (executable)
index 0000000..b292d11
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_Neg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition of interface Geolocation,timeout is set to Neg" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : -2 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function(){
+          assert_true(error.code == error.TIMEOUT ,"the method watchPosition of interface Geolocation, timeout is set to Neg");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0.html
new file mode 100755 (executable)
index 0000000..4b86430
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute code of interface PositionError return value" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : -1, maximumAge : 0 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function(){
+          assert_equals(error.code, error.TIMEOUT, "the attribute code of interface PositionError");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string.html
new file mode 100755 (executable)
index 0000000..a59dbab
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute timeout of interface PositionOptions set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : "" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_null.html
new file mode 100755 (executable)
index 0000000..16844e0
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute timeout of interface PositionOptions set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+          window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : null });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_number.html
new file mode 100755 (executable)
index 0000000..f7132ab
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_set_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute timeout of interface PositionOptions set number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 10 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+      }
+      function unexpectedsuccessCallback (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "this maybe timeout");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_string.html
new file mode 100755 (executable)
index 0000000..cc3b786
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_timeout_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute timeout of interface PositionOptions set string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : "a" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..af6a313
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..7168ec5
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_cached_position.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_cached_position.html
new file mode 100755 (executable)
index 0000000..249f240
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_cached_position</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if getCurrentPosition() supports cached position object" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { maximumAge: 60000});
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+      });
+        t.done();
+      } 
+
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectederrorCallback (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_empty_string.html
new file mode 100755 (executable)
index 0000000..7c3952d
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_errorCallback_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(successCallback, "");
+      } catch (e) {
+        t.done();
+      }
+      function successCallback (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_no_argument.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_no_argument.html
new file mode 100755 (executable)
index 0000000..656ee3f
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_errorCallback_no_argument</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to no argument" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(successCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function successCallback (e) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null.html
new file mode 100755 (executable)
index 0000000..bc1b57a
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() second parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(successCallback, null);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function successCallback (position) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null_options_null.html
new file mode 100755 (executable)
index 0000000..f458fb1
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_errorCallback_null_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() second third parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(successCallback, null, null);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function successCallback (position) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_string.html
new file mode 100755 (executable)
index 0000000..ee36b4e
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_errorCallback_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(successCallback, "a");
+      } catch (e) {
+        t.done();
+      }
+      function successCallback (position) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_example_one_short.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_example_one_short.html
new file mode 100755 (executable)
index 0000000..613b101
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_example_one_short</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if example of a 'one-shot' position request works" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <h1>This case will show you current positon.</h1>
+    <div><span id="position"></span></div>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { maximumAge: 60000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      } 
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_method_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_method_exists.html
new file mode 100755 (executable)
index 0000000..88b10ce
--- /dev/null
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Device Test:Geolocation_getCurrentPosition_method_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the Geolocation.getCurrentPosition exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      t.step(function () {
+        assert_true("getCurrentPosition" in navigator.geolocation, "the Geolocation.getCurrentPosition exists");
+      });
+      t.done();
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_operation_completed.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_operation_completed.html
new file mode 100755 (executable)
index 0000000..5eba65d
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_operation_completed</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if getCurrentPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout : 20000});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (e) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_options_null.html
new file mode 100755 (executable)
index 0000000..7748f58
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the third parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, null);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (err) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback.html
new file mode 100755 (executable)
index 0000000..26872df
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation return success" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+       
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (err) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_empty_string.html
new file mode 100755 (executable)
index 0000000..4b777d3
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first parameter set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+          navigator.geolocation.getCurrentPosition("");
+      } catch (e) {
+          t.done();
+      }
+      </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_null_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_null_options_null.html
new file mode 100755 (executable)
index 0000000..24e432f
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_null_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first third parameters parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(null,errorCallback,null);
+      } catch (e) {
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function() {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position.html
new file mode 100755 (executable)
index 0000000..70e731c
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_position</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first parameters return position" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function(){
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_no_argument.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_no_argument.html
new file mode 100755 (executable)
index 0000000..f519de3
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_position_no_argument</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first parameters return position no argument" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback () {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function(){
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_return_type.html
new file mode 100755 (executable)
index 0000000..ee8fdcf
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_position_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first parameters return position type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (e) {
+        t.step(function() {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_set_string.html
new file mode 100755 (executable)
index 0000000..3b78c7e
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.getCurrentPosition() method of the first parameter set a" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition("a");
+      } catch (e) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_empty_string.html
new file mode 100755 (executable)
index 0000000..0298ebc
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_with_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to empty string" />
+    <script type="text/javascript" src="../resources/testharness.js"></script>
+    <script type="text/javascript" src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition("", errorCallback);
+      } catch (e) {
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_null.html
new file mode 100755 (executable)
index 0000000..40e1a9b
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_with_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(null, errorCallback);
+      } catch (e) {
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_number.html
new file mode 100755 (executable)
index 0000000..1e7a385
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_with_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(2, errorCallback);
+      } catch (e) {
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_string.html
new file mode 100755 (executable)
index 0000000..e77c8b1
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_successCallback_with_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition("a", errorCallback);
+      } catch (e) {
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_timer_timeout.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_timer_timeout.html
new file mode 100755 (executable)
index 0000000..f48606a
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_getCurrentPosition_timer_timeout</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if getCurrentPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout : 0});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback () {
+        t.step(function () {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "can't get TIMEOUT error when timeout set to 0");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..e2281fa
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy value of interface PositionOptions set false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        var latitude = position.coords.latitude;
+        var longitude = position.coords.longitude;
+        t.step(function () {
+          assert_true(latitude != null || longitude != null);
+        });
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..d04439a
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy value of interface PositionOptions set true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        var latitude = position.coords.latitude;
+        var longitude = position.coords.longitude;        
+        t.step(function () {
+          assert_true(latitude != null || longitude != null);
+        });
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+          t.done();
+        }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000.html
new file mode 100755 (executable)
index 0000000..5894720
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_maximumAge_2000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge value of interface PositionOptions set 2000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 2000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000.html
new file mode 100755 (executable)
index 0000000..ab48f76
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, MaximumAge is set to 2000, timeout is set to 60000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        window.navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 2000, timeout: 60000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..0a2d76e
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,MaximumAge is set to 2000, timeout is set to 60000, enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        var watchId = window.navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 2000, timeout: 60000, enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..a7a7053
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, and MaximumAge is set to 2000, timeout is set to 60000,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        var watchId = window.navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 2000, timeout: 60000, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_Neg.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_Neg.html
new file mode 100755 (executable)
index 0000000..0336a08
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_maximumAge_Neg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute maximumAge value of interface PositionOptions in method watchPosition set Neg" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: -2 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0.html
new file mode 100755 (executable)
index 0000000..dbfccca
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation return timeout" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This successCallback will not be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "This successCallback will be called");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..fe46ff5
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, timeout is set to 0,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+        var t = async_test(document.title);
+        setup({timeout: 20000});
+
+        try {
+          navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0, enableHighAccuracy: false });
+        } catch (err) {
+          t.step(function () {
+            assert_unreached("Error message: { " + err.message + " }");
+          });
+          t.done();
+        }
+
+        function unexpectedSuccessCallback (position) {
+          t.step(function () {
+            assert_unreached("This errorCallback will not be called");
+          });
+          t.done();
+        }
+
+        function expectedErrorCallback (error) {
+          t.step(function () {
+            assert_true(error.code == error.TIMEOUT, "the method watchPosition of interface Geolocation,timeout is set to 0,enableHighAccuracy is set to false");
+          });
+          t.done();
+        }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..bd4c208
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, timeout is set to 0,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+        var t = async_test(document.title);
+        setup({timeout: 20000});
+
+        try {
+          navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0, enableHighAccuracy: true });
+        } catch (err) {
+          t.step(function () {
+            assert_unreached("Error message: { " + err.message + " }");
+          });
+          t.done();
+        }
+
+        function unexpectedSuccessCallback (position) {
+          t.step(function () {
+            assert_unreached("This errorCallback will not be called");
+          });
+          t.done();
+        }
+
+        function expectedErrorCallback (error) {
+          t.step(function () {
+            assert_true(error.code == error.TIMEOUT, "the method watchPosition of interface Geolocation,timeout is set to 0,enableHighAccuracy is set to true");
+          });
+          t.done();
+        }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0.html
new file mode 100755 (executable)
index 0000000..05244ba
--- /dev/null
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+<head>
+  <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0</title>
+  <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+  <meta name="assert" content="watchPosition - should be triggered when timeout is 0 and maximumAge is 0" />
+  <script src="../resources/testharness.js"></script>
+  <script src="../resources/testharnessreport.js"></script>
+  <script src="testinterface.js"></script>
+</head>
+<body>
+  <div id="log"></div>
+  <script>
+    //==== PRIORITY P2
+
+    var t = async_test(document.title);
+    setup({timeout: 20000});
+
+    try {
+      if(!check("geolocation", navigator)) {
+        t.step(function() {
+          assert_unreach("navigator.geolocation missing, test failed");
+        });
+      } else {
+        navigator.geolocation.watchPosition(successCallback, errorCallback, { timeout: 0, maximumAge: 0 });
+      }
+    } catch(err) {
+      t.step(function() {
+        assert_unreached("Error message: {" + err.message + " }");
+      });
+    }
+
+    function successCallback(position) {
+      t.done();
+    }
+
+    function errorCallback(error) {
+      var msg = "";
+      if(error.code == 0) {
+        msg = "UNKNOW_ERROR";
+      } else if (error.code == 1) { // PERMISSION_DENIED
+        msg = "The user rejects the browser requests";
+      } else if (error.code == 2) { //POSITION_UNAVAILABLE
+        msg = "Cannot find your location. Make sure your networkconnection is active and click the link to try again.";
+      } else if (error.code == 3) { //TIMEOUT
+        t.done();
+        return;
+      }
+      t.step(function () {
+        assert_unreached("PositionErrorCallback handle Event is triggered with the exception of "+ msg.toString());
+      });
+      t.done();
+    }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..facfbe7
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, MaximumAge is set to 0, timeout is set to 0, enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0, maximumAge: 0, enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will not be called");
+        });
+        t.done();
+      }
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the method watchPosition of interface Geolocation, MaximumAge is set to 0, timeout is set to 0, enableHighAccuracy is set to false");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..bf5ad0a
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, MaximumAge is set to 0, timeout is set to 0, enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0, maximumAge: 0, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will not be called");
+        });
+        t.done();
+}
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the method watchPosition of interface Geolocation, MaximumAge is set to 0,timeout is set to 0, enableHighAccuracy is set to true");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..1ba7141
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if will timeout when watchPosition method set maximumAge to 500, timeout to 100, enableHighSpeed to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 100, maximumAge: 500,  enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("successCallback should not be fired");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "The timeout error occurred");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..2a45dd5
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, MaximumAge is set to 500, timeout is set to 500, enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(successCallback, errorCallback, { timeout: 500, maximumAge: 500,  enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000.html
new file mode 100755 (executable)
index 0000000..0b0004a
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation set to 60000 for timeout" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function  unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..1867f2b
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,timeout is set to 60000,enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000,  enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..b6939ec
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, timeout is set to 60000, enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..5a91382
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,MaximumAge is set to 0, timeout is set to 60000, enableHighAccuracy is set to false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000, maximumAge: 0, enableHighAccuracy: false });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..3f63bdf
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, MaximumAge is set to 0, timeout is set to 60000,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+          navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000, maximumAge: 0,  enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..ef671a4
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation,MaximumAge is set to 2000, timeout is set to 60000, enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+
+      try {
+        navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 60000, maximumAge: 2000,  enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_Neg.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_Neg.html
new file mode 100755 (executable)
index 0000000..ad32973
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_PositionOptions_timeout_Neg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition of interface Geolocation, timeout is set to -2" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: -2 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the method watchPosition of interface Geolocation,timeout is set to -2");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_cached_position.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_cached_position.html
new file mode 100755 (executable)
index 0000000..302536b
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_cached_position</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if watchPosition() supports cached position object" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title,{timeout: 3000});
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 6000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_empty_string.html
new file mode 100755 (executable)
index 0000000..f5c1877
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_errorCallback_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, errorCallback is set to empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(successCallback, "");
+      } catch (err) {
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.step(function () {
+          assert_unreached("This should throws exception");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_error_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_error_return_type.html
new file mode 100755 (executable)
index 0000000..ddfa472
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_errorCallback_error_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the attribute error value of interface PositionError return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the error successcallback should not be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var type = typeof error;
+        t.step(function () {
+          assert_true(type == "object", "the attribute error value of interface PositionError return type");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_no_argument.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_no_argument.html
new file mode 100755 (executable)
index 0000000..75d2d38
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_errorCallback_no_argument</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, errorCallback is set to no argument" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+         navigator.geolocation.watchPosition(successCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreacheded("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null.html
new file mode 100755 (executable)
index 0000000..14a8999
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the second parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(successCallback, null);
+      } catch (err) {
+        t.step(function() {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null_options_null.html
new file mode 100755 (executable)
index 0000000..c645e13
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_errorCallback_null_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the second third parameter is null" />
+    <script src="../resources/testharness.js" type="text/javascript"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(successCallback, null, null);
+      } catch (err) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_string.html
new file mode 100755 (executable)
index 0000000..31d047a
--- /dev/null
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_errorCallback_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, errorCallback is set to string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(successCallback, "a");
+      } catch (err) {
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_example_repeated_position.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_example_repeated_position.html
new file mode 100755 (executable)
index 0000000..0ca14db
--- /dev/null
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_example_repeated_position</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if example of requesting repeated position updates works" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <h1>You can click the button to get repeated position</h1>
+    <input type="button" onclick="buttonClickHandler()" value="stop continue to monitor the position"/>
+    <div><span id="position"></span></div>
+    <div><span id="position"></span></div>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title, { timeout: 6000 });
+      setup({ timeout: 20000 });
+      var watchId;
+      var increase=0;
+
+      try {
+        watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { maximumAge: 60000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        var coordinates = position.coords;
+        document.getElementById("position").innerHTML="Your current position:" + coordinates.latitude + "," + coordinates.longitude;
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+
+      function buttonClickHandler(){
+        navigator.geolocation.clearWatch(watchId);
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_exists.html
new file mode 100755 (executable)
index 0000000..f631355
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Device Test:Geolocation_watchPosition_method_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+        var t = async_test(document.title);
+        setup({timeout: 20000});
+
+        t.step(function () {
+          assert_true("watchPosition" in navigator.geolocation, "the method watchPosition value of interface Geolocation exists");
+        });
+        t.done();
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_return_type.html
new file mode 100755 (executable)
index 0000000..bb2bc61
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_method_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation will return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      var a = null;
+
+      try {
+        a = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        var type = typeof a;
+        t.step(function () {
+          assert_true(type == "number", "the method watchPosition value of interface Geolocation will return type");
+        });
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_operation_completed.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_operation_completed.html
new file mode 100755 (executable)
index 0000000..86123c5
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_operation_completed</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if watchPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title,{timeout: 3000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, { timeout: 20000 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.step(function () {
+          assert_true(position !== null, "Get PositionCallback object");
+        });
+        t.done();
+      }
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_options_null.html
new file mode 100755 (executable)
index 0000000..0b4bfaa
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the third parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback, null);
+      } catch (err) {
+        t.step(function() {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback.html
new file mode 100755 (executable)
index 0000000..b423815
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation return success" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) {
+        t.done();
+      }
+
+      function unexpectedErrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_empty_string.html
new file mode 100755 (executable)
index 0000000..5d64ea4
--- /dev/null
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="flags" content="interact" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method with parameter of successCallback is empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition("", errorCallback);
+      } catch (err) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_null_options_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_null_options_null.html
new file mode 100755 (executable)
index 0000000..7b0a3d8
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_null_options_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the first third parameters parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(null, errorCallback, null);
+      } catch (err) {
+        t.done();
+      }
+      function errorCallback () { }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_number.html
new file mode 100755 (executable)
index 0000000..6eb0a39
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, successCallback set to number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(2, errorCallback);
+      } catch (err) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("This should throws exception" );
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_set_string.html
new file mode 100755 (executable)
index 0000000..d287461
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the first parameter set a" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition("a");
+      } catch (err) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_string.html
new file mode 100755 (executable)
index 0000000..0cb6994
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, successCallback set to string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition("a", errorCallback);
+      } catch (err) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("This should throws exception" );
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_empty_string.html
new file mode 100755 (executable)
index 0000000..5c18c8d
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_with_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the first parameter set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition("");
+      } catch (err) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_first_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_first_null.html
new file mode 100755 (executable)
index 0000000..5e003b4
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_with_first_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the geolocation.watchPosition() method of the first parameter is null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.watchPosition(null);
+      } catch (err) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_null.html
new file mode 100755 (executable)
index 0000000..78ed088
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<!--
+ Copyright (c) 2012 Intel Corporation.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of works must retain the original copyright notice, this list
+   of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the original copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+   may be used to endorse or promote products derived from this work without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+ AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+ -->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_successCallback_with_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation, successCallback is set to null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(null, errorCallback);
+      } catch (err) {
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_timer_timeout.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_timer_timeout.html
new file mode 100755 (executable)
index 0000000..945c8c6
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+
+
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_timer_timeout</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if watchPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P3
+
+      var t = async_test(document.title, {timeout: 3000});
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout : 0});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "can't get TIMEOUT error when timeout set to 0");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_empty_string.html
new file mode 100755 (executable)
index 0000000..4e8d3be
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
+        watchId = "";
+        t.step(function () {
+          assert_true(watchId == "" ,"the method watchPosition value of interface Geolocation set empty string");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) { }
+
+      function  errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_before_callbacks.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_before_callbacks.html
new file mode 100755 (executable)
index 0000000..f14833e
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_return_before_callbacks</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation return watchId before any callbacks" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.step(function () {
+          assert_unreached("The watchId must Existence");
+        });
+        t.done();
+      }
+
+      function  errorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_type.html
new file mode 100755 (executable)
index 0000000..2ef31b0
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(unexpectedSuccessCallback, expectedErrorCallback);
+        var type = typeof watchId;
+        t.step(function () {
+          assert_true(type == "number", "the method watchPosition value of interface Geolocation return type");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("The watchId return must before callbacks");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_null.html
new file mode 100755 (executable)
index 0000000..7b4e79a
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback);
+        watchId = null;
+        t.step(function () {
+          assert_true(watchId == null , "the method watchPosition value of interface Geolocation set null");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback (position) { }
+
+      function unexpectedErrorCallback (error) {
+            t.step(function () {
+              assert_unreached("Error message: {" + error.message + " }");
+            });
+            t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_number.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_number.html
new file mode 100755 (executable)
index 0000000..ff5d61b
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_set_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation set number" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
+        watchId = 2;
+        t.step(function () {
+          assert_true(watchId == 2 , "the method watchPosition value of interface Geolocation set number");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) { }
+
+      function  errorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_string.html
new file mode 100755 (executable)
index 0000000..94f3e48
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Geolocation_watchPosition_watchId_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation" />
+    <meta name="assert" content="Check if the method watchPosition value of interface Geolocation set string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        var watchId = navigator.geolocation.watchPosition(expectedSuccessCallback, unexpectedErrorCallback);
+        watchId = "a";
+        t.step(function () {
+          assert_true(watchId == "a", "the method watchPosition value of interface Geolocation set string");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+
+      function expectedSuccessCallback(position) { }
+
+      function  unexpectedErrorCallback(error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_Default_value.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_Default_value.html
new file mode 100755 (executable)
index 0000000..2e7b5d9
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_PERMISSION_DENIED_Default_value</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check the PositionError.PERMISSION_DENIED Default value" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(successCallback, errorCallback, { timeout: 1, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+      function errorCallback (error) {
+        t.step(function () {
+          assert_true(error.PERMISSION_DENIED == 1, "the attribute code of interface PositionError is 1");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_type.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_type.html
new file mode 100755 (executable)
index 0000000..4e43600
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_PERMISSION_DENIED_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the PositionError.PERMISSION_DENIED return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 1, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var permission_denied = error.PERMISSION_DENIED;
+        var type = typeof permission_denied;
+        t.step(function () {
+          assert_true(type == "number", "the attribute code of interface PositionError return type");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_Default_value.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_Default_value.html
new file mode 100755 (executable)
index 0000000..7b127a0
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_POSITION_UNAVAILABLE_DENIED_Default_value</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check the PositionError.POSITION_UNAVAILABLE Default value" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 1, enableHighAccuracy: true});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.POSITION_UNAVAILABLE == 2, "the PositionError.POSITION_UNAVAILABLE is 2");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_type.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_type.html
new file mode 100755 (executable)
index 0000000..4887955
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_POSITION_UNAVAILABLE_DENIED_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check the PositionError.POSITION_UNAVAILABLE return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 1, enableHighAccuracy: true});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var position_unavailable = error.POSITION_UNAVAILABLE;
+        var type = typeof position_unavailable;
+        t.step(function () {
+          assert_true(type == "number", "the PositionError.POSITION_UNAVAILABLE return type");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_Default_value.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_Default_value.html
new file mode 100755 (executable)
index 0000000..f92ded6
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_TIMEOUT_Default_value</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check the PositionError.TIMEOUT Default value" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(successCallback, errorCallback, { timeout: 1, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function successCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function errorCallback (error) {
+        t.step(function () {
+          assert_true(error.TIMEOUT == 3, "the attribute code of interface PositionError return 3");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_type.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_type.html
new file mode 100755 (executable)
index 0000000..9056052
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_TIMEOUT_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check the PositionError.TIMEOUT return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 1, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var timeout = error.TIMEOUT;
+        var type = typeof timeout;
+        t.step(function () {
+          assert_true(type == "number", "the attribute code of interface PositionError return 3");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_TIMEOUT.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_TIMEOUT.html
new file mode 100755 (executable)
index 0000000..2635b6a
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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 s
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_code_TIMEOUT</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute code of interface PositionError return 3" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "the attribute code of interface PositionError return TIMEOUT");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..c3a5fbb
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_code_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute code value of interface PositionError set empty string" />
+    <script type="text/javascript" src="../resources/testharness.js"></script>
+    <script type="text/javascript" src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout:10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          error.code = "";
+          assert_false(error.code == "", "the attribute code value of interface PositionError set empty string");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_exists.html
new file mode 100755 (executable)
index 0000000..3719249
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_code_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute code value of interface PositionError is exist, timeout is set to 10,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true("code" in error, "the attribute code value of interface PositionError is exist");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..9adfa0a
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_code_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute code value of interface PositionError is readonly, timeout is set to 10,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var offset = 1;
+        var tmp_error_code = error.code + offset;
+        error.code = tmp_error_code;
+        t.step(function () {
+          assert_false(error.code == tmp_error_code, "the attribute code value of interface PositionError is readonly");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..3f9ebd2
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_code_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute code value of interface PositionError set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+         navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout:10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          error.code = null;
+          assert_false(error.code == null, "the attribute code value of interface PositionError is readonly");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message.html
new file mode 100755 (executable)
index 0000000..abc5d88
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message of interface PositionError is comparison" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+
+      function expectedErrorCallback (error) {
+        var message = error.message;
+        t.step(function () {
+          assert_true(message != null, "the attribute message of interface PositionError is comparison");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..1e8da21
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message value of interface PositionError set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+      function  expectedErrorCallback (error) {
+        t.step(function () {
+          error.message = "";
+          assert_false(error.message == "", "the attribute message value of interface PositionError set empty string");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_exists.html
new file mode 100755 (executable)
index 0000000..95c5a14
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message value of interface PositionError exists, timeout is set to 10,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will not be called");
+        });
+        t.done();
+      }
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          assert_true("message" in error, "the attribute message value of interface PositionError exists");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..568e7c3
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message value of interface PositionError is readonly, timeout is set to 10,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+
+      function  expectedErrorCallback (error) {
+        t.step(function () {
+          var str_tmp = "test";
+          var tmp_error_message = error.message + str_tmp;
+          error.message = tmp_error_message;
+          assert_false(error.message == tmp_error_message, "the attribute message value of interface PositionError is readonly");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..57a20f4
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message value of interface PositionError set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout:20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout:10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("This errorCallback will be called");
+        });
+        t.done();
+      }
+      function expectedErrorCallback (error) {
+        t.step(function () {
+          error.message = null;
+          assert_false(error.message == null, "the attribute message value of interface PositionError set null");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_Err.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_Err.html
new file mode 100755 (executable)
index 0000000..aa15fd2
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_getCurrentPosition_Err</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation check that getCurrentPosition returns message of error." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout:20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedGetPositionSuccess, expectedGetPositionErr, { timeout:10, enableHighAccuracy : true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedGetPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+      function expectedGetPositionErr(error){
+        t.step(function () {
+          result = (typeof error=='object' && error.PERMISSION_DENIED == 1 && error.POSITION_UNAVAILABLE ==2
+           && error.TIMEOUT == 3 && typeof error.code == 'number' && typeof error.message =='string')
+          assert_true(result);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0Age0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0Age0.html
new file mode 100755 (executable)
index 0000000..43d5721
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_getCurrentPosition_timeOut0Age0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="check that message of timeout error set timeout to 0 and maxAge to 0" />
+    <script type="text/javascript" src="../resources/testharness.js"></script>
+    <script type="text/javascript" src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedGetPositionSuccess, expectedGetPositionErr, {timeout: 0, maximumAge: 0});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedGetPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedGetPositionErr (error) {
+        t.step(function () {
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0AgeNeg.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0AgeNeg.html
new file mode 100755 (executable)
index 0000000..2fbd399
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_getCurrentPosition_timeOut0AgeNeg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to 0 and maxAge to -1, check that message of timeout error raised." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test("test getCurrentPosition when get position time out");
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedGetPositionSuccess, expectedGetPositionErr, {timeout: 0, maximumAge: -1});
+      } catch (err) {
+          t.step(function () {
+            assert_unreached("Error message: { " + err.message + " }");
+          });
+          t.done();
+      }
+
+      function unexpectedGetPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedGetPositionErr (error) {
+        t.step(function () {
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOutNegAge0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOutNegAge0.html
new file mode 100755 (executable)
index 0000000..02d66d5
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_getCurrentPosition_timeOutNegAge0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to -1 and maxAge to 0, check that message of timeout error raised." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedGetPositionSuccess, expectedGetPositionErr, {timeout: -1, maximumAge: 0});
+      } catch (err) {
+            t.step(function () {
+              assert_unreached("Error message: { " + err.message + " }");
+            });
+            t.done();
+      }
+
+      function unexpectedGetPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedGetPositionErr (error) {
+        t.step(function(){
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_return_type.html
new file mode 100755 (executable)
index 0000000..2e9ab35
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="Check if the attribute message of interface PositionError return type, timeout is set to 10,enableHighAccuracy is set to true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedSuccessCallback, expectedErrorCallback, { timeout:10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedSuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("the errorCallback should be called");
+        });
+        t.done();
+      }
+      function expectedErrorCallback (error) {
+        var message = error.message;
+        var type = typeof message;
+        t.step(function () {
+          assert_true(type == "string", "the attribute message of interface PositionError return type");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_Err.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_Err.html
new file mode 100755 (executable)
index 0000000..ecb2c60
--- /dev/null
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_watchPosition_Err</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation check that watchPosition returns message of error." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedWatchPositionSuccess, expectedWatchPositionErr, { timeout: 10, enableHighAccuracy: true });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedWatchPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedWatchPositionErr (error) {
+        t.step(function () {
+          var result = (typeof error== 'object' && error.PERMISSION_DENIED == 1 && error.POSITION_UNAVAILABLE == 2 
+                       && error.TIMEOUT == 3 && typeof error.code == 'number' && typeof error.message == 'string');
+          assert_true(result);
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0Age0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0Age0.html
new file mode 100755 (executable)
index 0000000..753e80e
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_watchPosition_timeOut0Age0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to 0 and maxAge to 0, check that message of timeout error raised(watchPosition)." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.watchPosition(unexpectdWatchPositionSuccess, expectedWatchPositionErr, { timeout: 0, maximumAge: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectdWatchPositionSuccess(position){
+        t.step(function(){
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedWatchPositionErr(error){
+        t.step(function(){
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0AgeNeg.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0AgeNeg.html
new file mode 100755 (executable)
index 0000000..43cba93
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_watchPosition_timeOut0AgeNeg</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to 0 and maxAge to -1, check that timeout error raised." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.watchPosition(unexpectedWatchPositionSuccess, expectedWatchPositionErr, { timeout: 0, maximumAge: -1});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+     function unexpectedWatchPositionSuccess (position) {
+       t.step(function () {
+         assert_unreached("the error callback should be called");
+       });
+       t.done();
+     }
+
+     function expectedWatchPositionErr (error) {
+       t.step(function () {
+         assert_equals(error.message, "Timeout expired");
+       });
+       t.done();
+     }
+   </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOutNegAge0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOutNegAge0.html
new file mode 100755 (executable)
index 0000000..975435a
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_watchPosition_timeOutNegAge0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to -1 and maxAge to 0, check that timeout error raised." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.watchPosition(unexpectedWatchPositionSuccess, expectedWatchPositionErr, { timeout: -1, maximumAge: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedWatchPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedWatchPositionErr (error) {
+        t.step(function () {
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_with_getCurrentPosition_timeOut0Age0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionError_message_with_getCurrentPosition_timeOut0Age0.html
new file mode 100755 (executable)
index 0000000..750f36d
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionError_message_with_getCurrentPosition_timeOut0Age0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error" />
+    <meta name="assert" content="W3C geolocation set timeout to 0 and maxAge to 0, check that message of timeout error raised(getCurrentPosition)." />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+
+      try {
+        window.navigator.geolocation.getCurrentPosition(unexpectedGetPositionSuccess, expectedGetPositionErr, { timeout: 0, maximumAge: 0 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + err.message + " }");
+        });
+        t.done();
+      }
+
+      function unexpectedGetPositionSuccess (position) {
+        t.step(function () {
+          assert_unreached("the error callback should be called");
+        });
+        t.done();
+      }
+
+      function expectedGetPositionErr (error) {
+        t.step(function () {
+          assert_equals(error.message, "Timeout expired");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_empty_string.html
new file mode 100755 (executable)
index 0000000..35fa795
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : "" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_false.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_false.html
new file mode 100755 (executable)
index 0000000..918c2e0
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_false</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set false" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : false });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_null.html
new file mode 100755 (executable)
index 0000000..2ccd977
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : null });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_number.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_number.html
new file mode 100755 (executable)
index 0000000..5725b4e
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_set_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set number" />
+    <script src="../resources/testharness.js" type="text/javascript"></script>
+    <script src="../resources/testharnessreport.js" type="text/javascript"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : 2 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_string.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_string.html
new file mode 100755 (executable)
index 0000000..cf0e3af
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_set_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : "a" });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_true.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_true.html
new file mode 100755 (executable)
index 0000000..373110d
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_true</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="Check if the attribute enableHighAccuracy of interface PositionOptions set true" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : true });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_null.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_null.html
new file mode 100755 (executable)
index 0000000..8a07fb2
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+ Copyright (c) 2012 Intel Corporation.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of works must retain the original copyright notice, this list
+   of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the original copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+   may be used to endorse or promote products derived from this work without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+ AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+ -->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_with_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.enableHighAccuracy - set null type of value on attr enableHighAccuracy test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : null });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_number.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_number.html
new file mode 100755 (executable)
index 0000000..aac2aff
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+ Copyright (c) 2012 Intel Corporation.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of works must retain the original copyright notice, this list
+   of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the original copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+   may be used to endorse or promote products derived from this work without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+ AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+ -->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_with_number</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.enableHighAccuracy - set number type of value on attr enableHighAccuracy test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : 2 });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_string.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_string.html
new file mode 100755 (executable)
index 0000000..a192a70
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+ Copyright (c) 2012 Intel Corporation.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of works must retain the original copyright notice, this list
+   of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the original copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+   may be used to endorse or promote products derived from this work without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+ AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+ Authors:
+         Jin,Weihu <weihux.jin@intel.com>
+
+ -->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_enableHighAccuracy_with_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.enableHighAccuracy - set string type of value on attr enableHighAccuracy test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { enableHighAccuracy : "stringtype" });
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: {" + err.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+  </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0.html
new file mode 100755 (executable)
index 0000000..3e623b5
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.timeout - set timeout:0,maximumAge:0 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout: 0, maximumAge: 0 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback() {
+        t.step(function() {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000.html
new file mode 100755 (executable)
index 0000000..4b9be9e
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.timeout - set timeout:0,maximumAge:1000 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout: 0, maximumAge: 1000});
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position) {
+        t.step(function() {
+          assert_true(position !== null, "Get PositionCallback object");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_true(error.code == error.TIMEOUT, "Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_60000.html
new file mode 100755 (executable)
index 0000000..0a6896e
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_getCurrentPosition_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="getCurrentPosition - Navigator.PositionOptions.timeout - set timeout to 60000 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout: 60000 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position) {
+        t.step(function() {
+          assert_true(position !== null, "Get PositionCallback object");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0.html
new file mode 100755 (executable)
index 0000000..a419170
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="watchPosition - Navigator.PositionOptions.timeout - set timeout:0,maximumAge:0 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.watchPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout:0,maximumAge:0 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback() {
+        t.step(function() {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000.html
new file mode 100755 (executable)
index 0000000..33a1ec5
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="watchPosition - Navigator.PositionOptions.timeout - set timeout:0,maximumAge:1000 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.watchPosition(unexpectedsuccessCallback, expectederrorCallback, { timeout: 0, maximumAge: 1000 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback() {
+        t.step(function() {
+          assert_unreached("unexpectedsuccessCallback is fired");
+        });
+        t.done();
+      }
+      function expectederrorCallback (error) {
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_60000.html
new file mode 100755 (executable)
index 0000000..cdcffcc
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:PositionOptions_timeout_watchPosition_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options" />
+    <meta name="assert" content="watchPosition - Navigator.PositionOptions.timeout - set timeout to 60000 on timeout attr test" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.watchPosition(expectedsuccessCallback, unexpectederrorCallback, { timeout: 60000 });
+      } catch (e) {
+        t.step(function () {
+          assert_unreached("Error message: {" + e.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback(position) {
+        t.step(function() {
+          assert_true(position !== null, "Get PositionCallback object");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: {" + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords.html
new file mode 100755 (executable)
index 0000000..c44c1e3
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords of interface Position is comparison" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        window.navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..da36bfa
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords value of interface Position set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords = "";
+          assert_false(position.coords == "", "the attribute coords value of interface Position can set empty string");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_exists.html
new file mode 100755 (executable)
index 0000000..ea667d3
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords value of interface Position exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("coords" in position, "the attribute coords value of interface Position exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..4aae865
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords value of interface Position is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_coords = position.coords + offset;
+          position.coords = temp_coords;
+          assert_true(position.coords != temp_coords, "the attribute coords value of interface Position is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..c4c1977
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords value of interface Position set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.coords = null;
+          assert_true(position.coords != null, "the attribute coords value of interface Position can not set null");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_coords_return_type.html b/common/tct-geoallow-w3c-tests/geoallow/Position_coords_return_type.html
new file mode 100755 (executable)
index 0000000..d23b574
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_coords_return_type</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute coords of interface Position return type" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t =async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_equals(typeof position.coords, "object", "the attribute coords of interface Position return type");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_exists.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_exists.html
new file mode 100755 (executable)
index 0000000..28474b1
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_attribute_exists</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute timestamp value of interface Position exists" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P0
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          assert_true("timestamp" in position, "the attribute timestamp value of interface Position exists");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..dccbf7e
--- /dev/null
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute timestamp value of interface Position is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var offset = 1;
+          var temp_timestamp = position.timestamp + offset;
+          position.timestamp = temp_timestamp;
+          assert_true(position.timestamp != temp_timestamp, "The attribute timestamp value of interface Position is readonly");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..8426f9b
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if the attribute timestamp value of interface Position set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback);
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          position.timestamp = null;
+          assert_false(position.timestamp == null, "position.timestamp can be set null");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_0.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_0.html
new file mode 100755 (executable)
index 0000000..9c94889
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_timeout_0</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="flags" content="interact" />
+    <meta name="assert" content="Check if will get Position.timestamp value when set timeout to 0" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, {timeout: 0});
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("successCallback should not be invoked");
+        });
+        t.done()
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "The timeout error occurred");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_100.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_100.html
new file mode 100755 (executable)
index 0000000..2480f62
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_timeout_100</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if will get Position.timestamp value when set timeout to 100" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        navigator.geolocation.getCurrentPosition(unexpectedsuccessCallback, expectederrorCallback, {timeout: 100});
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function unexpectedsuccessCallback (position) {
+        t.step(function () {
+          assert_unreached("successCallback should not be invoked");
+        });
+        t.done()
+      }
+      function expectederrorCallback (error) {
+        t.step(function () {
+          assert_equals(error.code, error.TIMEOUT, "The timeout error occurred");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_60000.html b/common/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_60000.html
new file mode 100755 (executable)
index 0000000..47d839d
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:Position_timestamp_timeout_60000</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position" />
+    <meta name="assert" content="Check if will get Position.timestamp value when set timeout to 60000" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+  <div id=log></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 65000});
+      try {
+        navigator.geolocation.getCurrentPosition(expectedsuccessCallback, unexpectederrorCallback, {timeout: 60000});
+      } catch (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+      function expectedsuccessCallback (position) {
+        t.step(function () {
+          var timestamp = position.timestamp;
+          assert_true(timestamp == null || isNaN(timestamp) || typeof timestamp == "number", "should get Position.timestamp");
+        });
+        t.done();
+      }
+      function unexpectederrorCallback (error) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation.html b/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation.html
new file mode 100755 (executable)
index 0000000..d9e1813
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:navigator_geolocation</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo" />
+    <meta name="assert" content="Check if the attribute geolocation value of interface NavigatorGeolocation return object" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      try {
+        t.step(function() {
+          assert_true(typeof navigator.geolocation == "object", "the attribute geolocation value of interface NavigatorGeolocation return object");
+        });
+        t.done();
+      } catch (err) {
+        t.step(function () {
+          assert_unreached("Error message: { " + error.message + " }");
+        });
+        t.done();
+      }
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_empty_string.html b/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_empty_string.html
new file mode 100755 (executable)
index 0000000..cabbe70
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>NavigatorGeolocation Test:navigator_geolocation_attribute_empty_string</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo" />
+    <meta name="assert" content="Check if the attribute geolocation value of interface NavigatorGeolocation set empty string" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      t.step(function () {
+        navigator.geolocation = "";
+        assert_true(navigator.geolocation != "", "navigator.geolocation can't be empty string");
+      });
+      t.done();
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_readonly.html b/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_readonly.html
new file mode 100755 (executable)
index 0000000..17427e7
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:navigator_geolocation_attribute_readonly</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo" />
+    <meta name="assert" content="Check if the attribute geolocation value of interface NavigatorGeolocation is readonly" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      t.step(function () {
+        navigator.geolocation = 2;
+        assert_true(navigator.geolocation != 2, "the attribute geolocation value of interface NavigatorGeolocation is readonly");
+      });
+      t.done();
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_set_null.html b/common/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_set_null.html
new file mode 100755 (executable)
index 0000000..65defa0
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2012 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Jin,Weihu <weihux.jin@intel.com>
+        Liu,Xin <xinx.liu@intel.com>
+
+-->
+<html>
+  <head>
+    <title>Geolocation Test:navigator_geolocation_attribute_set_null</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <link rel="help" href="http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo" />
+    <meta name="assert" content="Check if the attribute geolocation value of interface NavigatorGeolocation set null" />
+    <script src="../resources/testharness.js"></script>
+    <script src="../resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    //==== PRIORITY P2
+
+      var t = async_test(document.title);
+      setup({timeout: 20000});
+      t.step(function () {
+        navigator.geolocation = null;
+        assert_true(navigator.geolocation != null, "navigator.geolocation can't be null");
+      });
+      t.done();
+    </script>
+  </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/testinterface.js b/common/tct-geoallow-w3c-tests/geoallow/testinterface.js
new file mode 100755 (executable)
index 0000000..82ef107
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+Copyright (c) 2012 Intel Corporation.
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+*Redistributions of works must retain the original copyright notice, this list
+of conditions and the following disclaimer.
+*Redistributions in binary form must reproduce the original copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+*Neither the name of Intel Corporation nor the names of its contributors
+may be used to endorse or promote products derived from this work without
+specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+Authors:
+        Xu,Liyu <liyux.xu@intel.com>
+Revision history:
+Date                        Author                        Description
+06-08-2012         Xu,Liyu <liyux.xu@intel.com>      case creation
+*/
+function check(func,obj) {
+    for(tmp in obj){
+       switch(tmp){
+            case func:
+              return true;
+              break;
+        }
+    }
+   return false;
+}
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/COPYING b/common/tct-geoallow-w3c-tests/geoallow/w3c/COPYING
new file mode 100755 (executable)
index 0000000..18ee0ce
--- /dev/null
@@ -0,0 +1,23 @@
+All test files except this COPYING under this folder come from
+http://w3c-test.org/dap/tests/vibration/
+with modifications as below:
+1. t00011.js
+2. t00013.js
+3. t00015.js
+4. t00017.js
+5. t00027.js
+6. t00028.js
+7. t00029.js
+8. t00058.js
+9. t00059.js
+10. t00060.js
+11. Overview.html
+
+These tests are copyright by W3C and/or the author listed in the test
+file. The tests are dual-licensed under the W3C Test Suite License:
+http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
+and the BSD 3-clause License:
+http://www.w3.org/Consortium/Legal/2008/03-bsd-license
+under W3C's test suite licensing policy:
+http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright
+
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/OWNERS b/common/tct-geoallow-w3c-tests/geoallow/w3c/OWNERS
new file mode 100755 (executable)
index 0000000..64e2488
--- /dev/null
@@ -0,0 +1,2 @@
+@zqzhang
+@jdm
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/Overview.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/Overview.html
new file mode 100755 (executable)
index 0000000..dc6d25e
--- /dev/null
@@ -0,0 +1,300 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>Geolocation API Specification Testing</title>
+    <link type="text/css" href="http://www.w3.org/StyleSheets/base.css" />
+    <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
+    <link href="style.css" rel="stylesheet" type="text/css"/>
+  </head>
+  <body>
+
+    <h1>Geolocation API Test Suite</h1>
+
+
+<a href="test-suite.zip">A Zip archive of all the files</a> is also available.
+
+<h2>Introduction</h2>
+
+<p>This page links to a series of test cases for the <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation API Specification</a>. It is organised by section, and (more or less) categorizes each test according to which statement in the specification it relates to.</p>
+
+<h2>Instructions</h2>
+
+<p>The tests are designed to be run manually, mostly because the specification expects user interaction for allowing the browser to access location information.</p>
+
+<!-- ###################################################################### -->
+<hr/>
+<h2>Tests</h2>
+
+<!-- ###################################################################### -->
+
+<h3><a href="http://dev.w3.org/geo/api/spec-source.html#privacy_for_uas">4 Security and privacy considerations</a></h3>
+
+<h4><a href="http://dev.w3.org/geo/api/spec-source.html#privacy_for_uas">4.1 Privacy considerations for implementors of the Geolocation API</a></h4>
+<ul>
+
+  <li>
+    <q>User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below.</q>
+    <br/><small><a href="t.html?00001">Test 00001</a>: user denies access, check
+      that error callback is called with correct code</small>
+    <br/><small><a href="t.html?00002">Test 00002</a>: user allows access, check
+      that success callback is called or error callback is called with correct code.</small>
+  </li>
+
+  <li>
+    <q>The user interface must include the host component of the document's URI</q>
+    <br/><small><a href="t.html?00018">Test 00018</a>: call getCurrentPosition, check that there's UI appearing with the document host</small>
+    <br/><small><a href="t.html?00019">Test 00019</a>: call watchPosition, check that there's UI appearing with the document host</small>
+  </li>
+
+  <li>
+    <q>Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context [BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.</q>
+    <br/><small><a href="t.html?00141">Test 00141</a>: user asked to approve/remember, then asked to revoke, then reload. The permission dialogue should reappear.</small>
+    <br/><small><a href="t.html?00142">Test 00142</a>: user asked to deny/remember, then ask to revoke, then reload. The permission dialogue should reappear</small>
+  </li>
+</ul>
+
+<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
+
+    <h3><a href="http://dev.w3.org/geo/api/spec-source.html#api_description">5 API Description</a></h3>
+
+    <h4><a href="http://dev.w3.org/geo/api/spec-source.html#geolocation_interface">5.1 Geolocation interface</a></h4>
+
+<ul>
+  <li>
+    <q>Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface. An instance of NavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.</q>
+    <br/><small><a href="t.html?00026">Test 00026</a>: check that window.navigator.geolocation exists and is of type 'object'.</small>
+    <br/><small><a href="t.html?00150">Test 00150</a>: check that the geolocation property of window.navigator is enumerable.</small>
+  </li>
+
+  <li>
+    <!-- The TypeError replaced by TypeMismatchError in WebKit-->
+    <!--<q>The getCurrentPosition() method takes one, two or three arguments ... If successCallback is the null value, then throw a TypeError.</q>-->
+    <q>The getCurrentPosition() method takes one, two or three arguments ... If successCallback is the null value, then throw a TypeMismatchError.</q>
+    <br/><small><a href="t.html?00027">Test 00027</a>: call getCurrentPosition without arguments, check that exception is thrown</small>
+    <br/><small><a href="t.html?00011">Test 00011</a>: call getCurrentPosition with null success callback, check that exception is thrown</small>
+    <br/><small><a href="t.html?00013">Test 00013</a>: call getCurrentPosition with null success and error callbacks, check that exception is thrown</small>
+    <br/><small><a href="t.html?00028">Test 00028</a>: call getCurrentPosition() with wrong type for first argument. Exception expected.</small>
+    <br/><small><a href="t.html?00029">Test 00029</a>: call getCurrentPosition() with wrong type for second argument. Exception expected.</small>
+    <br/><small><a href="t.html?00030">Test 00030</a>: call getCurrentPosition() with wrong type for third argument. No exception expected.</small>
+  </li>
+
+  <li>
+    <q>When called, [the getCurrentPosition() method] must immediately return and then asynchronously attempt to obtain the current location of the device.</q>
+    <br/><small><a href="t.html?00031">Test 00031</a>: Check that getCurrentPosition returns synchronously before any callbacks are invoked.</small>
+  </li>
+
+  <li>
+    <q>If the [location] attempt is successful, the successCallback is invoked (i.e. the handleEvent operation is called on the callback object) with a new Position object, reflecting the current location of the device.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>If the attempt fails, the errorCallback is invoked with a new PositionError object, reflecting the reason for the failure.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <!-- The TypeError replaced by TypeMismatchError in WebKit-->
+    <!--<q>The watchPosition() method takes one, two or three arguments ... If successCallback is the null value, then throw a TypeError.<q> -->
+    <q>The watchPosition() method takes one, two or three arguments ... If successCallback is the null value, then throw a TypeMismatchError.<q>
+    <br/><small><a href="t.html?00058">Test 00058</a>: call watchPosition with no arguments, check that exception is thrown</small>
+    <br/><small><a href="t.html?00015">Test 00015</a>: call watchPosition with null success callback, check that exception is thrown</small>
+    <br/><small><a href="t.html?00017">Test 00017</a>: call watchPosition with null success and error callbacks, check that exception is thrown</small>
+    <br/><small><a href="t.html?00059">Test 00059</a>: call watchPosition() with wrong type for first argument. Exception expected.</small>
+    <br/><small><a href="t.html?00060">Test 00060</a>: call watchPosition() with wrong type for second argument. Exception expected.</small>
+    <br/><small><a href="t.html?00061">Test 00061</a>: call watchPosition() with wrong type for third argument. No exception expected.</small>
+  </li>
+
+  <li>
+    <q>When called, [watchPosition] must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation.</q>
+    <br/><small><a href="t.html?00062">Test 00062</a>: check that watchPosition returns synchronously before any callbacks are invoked.</small>
+    <br/><small><a href="t.html?00151">Test 00151</a>: check that watchPosition
+      returns a long.</small>
+  </li>
+
+  <li>
+    <q>This operation must first attempt to obtain the current location of the device and invoke the appropriate callback.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>It then must continue to monitor the position of the device and invoke the appropriate callback every time this position changes.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>The watch operation continues until the clearWatch method is called with the corresponding identifier</q>
+    <br/><small><a href="t.html?00080">Test 00080</a>: Test that calling
+      clearWatch with invalid watch IDs does not cause an exception.</small>
+  </li>
+
+  <li>
+    <q>The successCallback is only invoked when a new position is obtained and this position differs significantly from the previously reported position. The definition of what consitutes a significant difference is left to the implementation.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>For both getCurrentPosition  and watchPosition, the implementation must never invoke the successCallback without having first obtained permission from the user to share location</q>
+    <br/><small>See <a href="t.html?00001">Test 00001</a>, <a href="t.html?00002">Test 00002</a>, <a href="t.html?00018">Test 00018</a> and <a href="t.html?00019">Test 00019</a></small>
+  </li>
+
+  <li>
+    <q>If the user grants permission, the appropriate callback must be invoked as described above.</q>
+    <br/><small>See <a href="t.html?00002">Test 00002</a></small>
+  </li>
+
+  <li>
+    <q>If the user denies permission, the errorCallback (if present) must be invoked with code PERMISSION_DENIED.</q>
+    <br/><small>See <a href="t.html?00001">Test 00001</a></small>
+  </li>
+
+  <li>
+    <q>The time that is spent obtaining the user permission must not be included in the period covered by the timeout attribute of the PositionOptions  parameter. The timeout attribute must only apply to the location acquisition operation.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>If the user grants permission, the appropriate callback must be invoked as described above. If the user denies permission, the errorCallback (if present) must be invoked with code PERMISSION_DENIED, irrespective of any other errors encoutered in the above steps.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>The clearWatch() method takes one argument. When called, the watch process identified by the watchId argument will be stopped and should not invoke any further callbacks.</q>
+    <br/><small>No tests</small>
+  </li>
+</ul>
+
+<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
+
+<h4><a href="http://dev.w3.org/geo/api/spec-source.html#position_options_interface">5.2 PositionOptions interface</a></h4>
+<ul>
+
+  <li>
+    <q>In ECMAScript, the enableHighAccuracy, timeout and maximumAge properties are all optional: when creating a PositionOptions object, the developer may specify any of these properties.</q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>The enableHighAccuracy  attribute provides a hint that the application would like to receive the best possible results. This may result in slower response times or increased power consumption. The user might also deny this capability, or the device might not be able to provide more accurate results than if the flag wasn't specified.</q>
+    <br/><small><a href="t.html?00123">Test 00123</a>: call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.</small>
+    <br/><small><a href="t.html?00124">Test 00124</a>: call watchPosition with wrong type for enableHighAccuracy. No exception expected.</small>
+  </li>
+
+  <li>
+    <q>If the PositionOptions parameter to getCurrentPosition or watchPosition is omitted, the default value used for the enableHighAccuracy attribute is false. The same default value is used in ECMAScript when the enableHighAccuracy property is omitted. </q>
+    <br/><small>No tests</small>
+  </li>
+
+  <li>
+    <q>The timeout attribute denotes the maximum length of time (expressed in milliseconds) that is allowed to pass from the call to getCurrentPosition() or watchPosition() until the corresponding successCallback is invoked. If the implementation is unable to successfully acquire a new Position before the given timeout elapses, and no other errors have occurred in this interval, then the corresponding errorCallback must be invoked with a PositionError object whose code attribute is set to TIMEOUT.</q>
+    <br/><small><a href="t.html?00086">Test 00086</a>: set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)</small>
+    <br/><small><a href="t.html?00088">Test 00088</a>: set timeout and maximumAge to 0, check that timeout error raised (watchPosition)</small>
+  </li>
+
+  <li>
+    <q>If the PositionOptions parameter to getCurrentPosition or watchPosition is omitted, the default value used for the timeout attribute is Infinity.</q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>If a negative value is supplied, the timeout value is considered to be 0.</q>
+    <br/><small><a href="t.html?00091">Test 00091</a>: check that a negative timeout value is equivalent to a 0 timeout value (getCurrentLocation)</small>
+    <br/><small><a href="t.html?00092">Test 00092</a>: check that a negative timeout value is equivalent to a 0 timeout value (watchPosition)</small>
+  </li>
+
+  <li>
+    <q>The same default value is used in ECMAScript when the timeout property is omitted.</q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>In case of a getCurrentPosition() call, the errorCallback would be invoked at most once</q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>In case of a watchPosition(), the errorCallback could be invoked repeatedly: the first timeout is relative to the moment watchPosition()  was called or the moment the user's permission was obtained, if that was necessary. Subsequent timeouts are relative to the moment when the implementation determines that the position of the hosting device has changed and a new Position object must be acquired. </q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>The maximumAge attribute indicates that the application is willing to accept a cached position whose age is no greater than the specified time in milliseconds. If maximumAge is set to 0, the implementation must immediately attempt to acquire a new position object. Setting the maximumAge to Infinity will force the implementation to return a cached position regardless of its age. If an implementation does not have a cached position available whose age is no greater than the specified maximumAge, then it must acquire a new position object. In case of a watchPosition(), the maximumAge refers to the first position object returned by the implementation.</q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>If the PositionOptions parameter to getCurrentPosition or watchPosition is omitted, the default value used for the maximumAge  attribute is 0. If a negative value is supplied, the maximumAge value is considered to be 0. The same default value is used in ECMAScript when the maximumAge  property is omitted.</q>
+    <br/><small>No tests.</small>
+  </li>
+</ul>
+
+<!-- ###################################################################### -->
+
+<h4><a href="http://dev.w3.org/geo/api/spec-source.html#postion_interface">5.3 Position interface</a></h4>
+<ul>
+  <li>
+    <q>The timestamp attribute represents the time when the Position object was acquired and is represented as a DOMTimeStamp [DOMTIMESTAMP].</q>
+    <br/><small><a href="t.html?00095">Test 00095</a>: check existence of timestamp attribute, and correct type</small>
+  </li>
+</ul>
+
+<!-- ###################################################################### -->
+
+<h4><a href="http://dev.w3.org/geo/api/spec-source.html#coordinates_interface">5.4 Coordinates interface</a></h4>
+<ul>
+  <li>
+    <q>The latitude and longitude attributes are geographic coordinates specified in decimal degrees.</q>
+    <br/><small><a href="t.html?00152">Test 00152</a>: check for latitude and longitude.</small>
+  </li>
+
+  <li>
+    <q>The altitude attribute denotes the height of the position, specified in meters above the [WGS84] ellipsoid. If the implementation cannot provide altitude information, the value of this attribute must be null.</q>
+    <br/><small><a href="t.html?00104">Test 00104</a>: check type of altitude</small>
+  </li>
+
+  <li>
+    <q>The accuracy attribute denotes the accuracy level of the latitude and longitude coordinates. It is specified in meters and must be supported by all implementations. </q>
+    <br/><small><a href="t.html?00153">Test 00153</a>: check for accuracy property.</small>
+  </li>
+
+  <li>
+    <q>The altitudeAccuracy  attribute is specified in meters. If the implementation cannot provide altitude information, the value of this attribute must be null. </q>
+    <br/><small><a href="t.html?00105">Test 00105</a>: check type of altitudeAccuracy</small>
+  </li>
+
+  <li>
+    <q>The heading attribute denotes the direction of travel of the hosting
+      device and is specified in degrees counting clockwise relative to the true
+      north. If the implementation cannot provide heading information, the value
+      of this attribute must be null.</q>
+    <br/><small><a href="t.html?00106">Test 00106</a>: check type of heading</small>
+  </li>
+
+  <li>
+    <q>If the hosting device is stationary (i.e. the value of the speed attribute is 0), then the value of the heading attribute must be NaN.</q>
+    <br/><small>No tests.</small>
+  </li>
+
+  <li>
+    <q>The speed attribute denotes the current ground speed of the hosting device and is specified in meters per second. If the implementation cannot provide speed information, the value of this attribute must be null. </q>
+    <br/><small><a href="t.html?00107">Test 00107</a>: check type of speed</small>
+  </li>
+</ul>
+
+<!-- ###################################################################### -->
+
+<h4><a href="http://dev.w3.org/geo/api/spec-source.html#postion_error_interface">5.5 PositionError interface</a></h4>
+<ul>
+  <li>
+    <q>The code attribute must return the appropriate code from the following list:</q>
+    <br/><small><a href="t.html?00108">Test 00108</a>: check that the error type exists and that its attributes have the right numeric value</small>
+  </li>
+</ul>
+
+<address>
+Please send feedback, error reports, or new tests to public-geolocation@w3.org
+</address>
+
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html
new file mode 100755 (executable)
index 0000000..2ff7524
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML>
+<meta charset="utf-8">
+<title>Geolocation Test: PositionOptions tests</title>
+<link rel="help" href="http://www.w3.org/TR/geolocation-API/#position_options_interface">
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src='support.js'></script>
+
+<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p>
+<div id="log"></div>
+
+<script>
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00123
+test(function() {
+  try {
+    geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: "boom"});
+    geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: 321});
+    geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: -Infinity});
+    geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}});
+  } catch(e) {
+    assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+  }
+}, 'Call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00124
+test(function() {
+  try {
+    geo.watchPosition(dummyFunction, null, {enableHighAccuracy: "boom"});
+    geo.watchPosition(dummyFunction, null, {enableHighAccuracy: 321});
+    geo.watchPosition(dummyFunction, null, {enableHighAccuracy: -Infinity});
+    geo.watchPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}});
+  } catch(e) {
+    assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+  }
+}, 'Call watchPosition with wrong type for enableHighAccuracy. No exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00086, 00088, 00091 and 00092
+test(function() {
+  var t86 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)'),
+      t88 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (watchPosition)'),
+      t91 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (getCurrentLocation)'),
+      t92 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (watchPosition)');
+
+  try {
+    geo.getCurrentPosition(
+        t86.step_func(function(pos) {
+          assert_unreached('A success callback was invoked unexpectedly');
+        }),
+        t86.step_func(function(err) {
+          assert_equals(err.code, err.TIMEOUT);
+          t86.done();
+        }),
+        {timeout: 0, maximumAge: 0}
+    );
+  } catch(e) {
+    t86.step(function() {
+      assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+    });
+  }
+
+  try {
+    geo.watchPosition(
+        t88.step_func(function(pos) {
+          assert_unreached('A success callback was invoked unexpectedly');
+        }),
+        t88.step_func(function(err) {
+          assert_equals(err.code, err.TIMEOUT);
+          t88.done();
+        }),
+        {timeout: 0, maximumAge: 0}
+    );
+  } catch(e) {
+    t88.step(function() {
+      assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+    });
+  }
+
+  try {
+    geo.getCurrentPosition(
+        t91.step_func(function(pos) {
+          assert_unreached('A success callback was invoked unexpectedly');
+        }),
+        t91.step_func(function(err) {
+          assert_equals(err.code, err.TIMEOUT);
+          t91.done();
+        }),
+        {timeout:-1, maximumAge: 0}
+    );
+  } catch(e) {
+    t91.step(function() {
+      assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+    });
+  }
+
+  try {
+    geo.watchPosition(
+        t92.step_func(function(pos) {
+          assert_unreached('A success callback was invoked unexpectedly');
+          done();
+        }),
+        t92.step_func(function(err) {
+          assert_equals(err.code, err.TIMEOUT);
+          done();
+        }),
+        {timeout: -1, maximumAge: 0}
+    );
+  } catch(e) {
+    t92.step(function() {
+      assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+    });
+  }
+}, 'PositionOptions tests');
+</script>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/clearWatch_TypeError.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/clearWatch_TypeError.html
new file mode 100755 (executable)
index 0000000..c47666b
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<meta charset='utf-8'>
+<title>Geolocation Test: clearWatch TypeError tests</title>
+<link rel='help' href='http://www.w3.org/TR/geolocation-API/#clear-watch'>
+<script src='../../resources/testharness.js'></script>
+<script src='../../resources/testharnessreport.js'></script>
+<script src='support.js'></script>
+
+<div id='log'></div>
+
+<script>
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00080
+test(function() {
+  try {
+    geo.clearWatch(-1);
+    geo.clearWatch(0);
+    geo.clearWatch(1);
+  } catch(e) {
+    assert_unreached('An exception was thrown unexpectedly: ' + e.message);
+  }
+  done();
+}, 'Test that calling clearWatch with invalid watch IDs does not cause an exception');
+</script>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/common.js b/common/tct-geoallow-w3c-tests/geoallow/w3c/common.js
new file mode 100755 (executable)
index 0000000..d54df91
--- /dev/null
@@ -0,0 +1,120 @@
+var geo = window.navigator.geolocation;
+var testFinished = false;
+var messageEl = $('message');
+var instructionsEl = $('instructions');
+
+// inject this test's javascript code
+if (window.location.search.length > 1) {
+  var testNumber = window.location.search.substring(1);
+  document.getElementsByTagName('title')[0].text='Test '+testNumber;
+  document.getElementById('source').href='t'+testNumber+'.js';
+  var testScript = document.createElement('script');
+  testScript.type = 'text/javascript';
+  testScript.src = 't' + testNumber + '.js';
+  message('');
+  document.getElementsByTagName('body')[0].appendChild(testScript);
+}
+
+
+if (geo == undefined) fail('Geolocation API not supported by this browser');
+
+// The spec states that an implementation SHOULD acquire user permission before
+// beggining the position acquisition steps. If an implementation follows this
+// advice, set the following flag to aid debugging.
+var isUsingPreemptivePermission = false;
+
+//===================================================
+
+
+
+function $(id) {
+  return document.getElementById(id);
+}
+
+function pass(message) {
+  if (!testFinished) {
+    messageEl.className = 'pass';
+    messageEl.innerHTML = 'PASS' + (message ? ': ' + message : '');
+    testFinished = true;
+  }
+}
+
+function fail(message) {
+  if (!testFinished) {
+    messageEl.className = 'fail';
+    messageEl.innerHTML = 'FAIL' + (message ? ': ' + message : '');
+    testFinished = true;
+  }
+}
+
+function maybe(message) {
+  messageEl.className = 'maybe';
+  messageEl.innerHTML = message ? message : '';
+}
+
+function message(message) {
+  if (!testFinished) {
+    messageEl.className = '';
+    messageEl.innerHTML = message ? message : '';
+  }
+}
+
+function instruction(message) {
+  if (!testFinished) {
+    instructionsEl.innerHTML = message ? message : '';
+  }
+}
+function askAccept() {
+  instruction('Clear all Geolocation permissions before running this test. If prompted for permission, please allow.');
+}
+function askRefuse() {
+  instruction('Clear all Geolocation permissions before running this test. If prompted for permission, please deny.');
+}
+
+function run(fn) {
+  try {
+    fn();
+  } catch(e) { fail('Test threw unexpected exception "' + e + '".'); };
+}
+
+function runExpectingException(type, fn) {
+  try {
+    fn();
+    fail('Test did not throw expected exception "' + type + '"');
+  } catch(e) {
+    maybe('Test threw exception below. PASS if type is "' + type + '", otherwise FAIL.<br><br>' + e);
+  }
+}
+
+var dummyFunction = function() {};
+
+var expectedErrorCallback = function(e) {
+  pass('An error callback was invoked with error ' + errorToString(e));
+};
+var expectedSuccessCallback = function(pos) {
+  pass('A success callback was invoked with position ' + positionToString(pos));
+};
+
+var unexpectedErrorCallback = function(e) {
+  fail('An error callback was invoked unexpectedly with error ' + errorToString(e));
+};
+var unexpectedSuccessCallback = function(pos) {
+  fail('A success callback was invoked unexpectedly with position ' + positionToString(pos));
+};
+
+var positionToString = function(pos) {
+  var c = pos.coords;
+  return '[lat: ' + c.latitude + ', lon: ' + c.longitude + ', acc: ' + c.accuracy + ']';
+}
+
+var errorToString = function(err) {
+  var codeString;
+  switch(err.code) {
+    case err.UNKNOWN_ERROR: codeString = 'UNKNOWN_ERROR'; break;
+    case err.PERMISSION_DENIED: codeString = 'PERMISSION_DENIED'; break;
+    case err.POSITION_UNAVAILABLE: codeString = 'POSITION_UNAVAILABLE'; break;
+    case err.TIMEOUT: codeString = 'TIMEOUT'; break;
+    default: codeString = 'undefined error code'; break;
+  }
+  return '[code: ' + codeString + ' (' + err.code + '), message: ' + (err.message ? err.message : '(empty)') + ']';
+}
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html
new file mode 100755 (executable)
index 0000000..c9fa4bf
--- /dev/null
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML>
+<meta charset="utf-8">
+<title>Geolocation Test: getCurrentPosition tests</title>
+<link rel="help" href="http://www.w3.org/TR/geolocation-API/">
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+
+<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p>
+<div id="log"></div>
+<script>
+var geo, success, fail;
+
+setup(function() {
+  geo = navigator.geolocation;
+}, {explicit_done: true});
+
+function successCallback(position)
+{
+  var ii, oldval;
+
+  /*
+    [NoInterfaceObject]
+    interface Position {
+      readonly attribute Coordinates coords;
+      readonly attribute DOMTimeStamp timestamp;
+    };
+  */
+
+  test(function() {
+    assert_equals(position.toString(), "[object Position]",
+        "Position.toString should result in '[object Position]' was: " + position.toString());
+  }, "Position toString");
+
+  test(function() {
+    assert_equals(position.coords.toString(), "[object Coordinates]",
+        "position.coords.toString should result in '[object Coordinates]' was: " + position.coords.toString());
+  }, "Position.coordinates toString");
+
+  test(function() {
+    assert_equals(typeof(position.timestamp), "number",
+        "Position.timestamp should be of type 'number' was: " + typeof(position.timestamp));
+  }, "Position.timestamp is type number");
+
+  /*
+    [NoInterfaceObject]
+    interface Coordinates {
+      readonly attribute double latitude;
+      readonly attribute double longitude;
+      readonly attribute double? altitude;
+      readonly attribute double accuracy;
+      readonly attribute double? altitudeAccuracy;
+      readonly attribute double? heading;
+      readonly attribute double? speed;
+    };
+  */
+
+  for (ii in position.coords) {
+    // these four can be numbers or null
+    if (ii == "altitude" || ii == "altitudeAccuracy" || ii == "heading" || ii == "speed") {
+      test(function() {
+        assert_true(position.coords[ii] === null || typeof(position.coords[ii]) === "number",
+            ii + " must be null or 'number' type, was: " + typeof(position.coords[ii]));
+      }, ii+ " is null or number");
+    } else {
+      test(function() {
+        assert_equals(typeof(position.coords[ii]), "number",
+            ii + " should be type 'number' but typeof returned: " + typeof(position.coords[ii]));
+      }, ii + " is type number");
+    }
+
+    oldval = position.coords[ii];
+    position.coords[ii] = 666;
+
+    test(function() {
+      assert_equals(position.coords[ii], oldval,
+          ii + " should be readonly, wrote: " + position.coords[ii] + " old value was " + oldval);
+    }, ii + " readonly");
+
+  }
+
+  success.done();
+  done();
+}
+
+function BadErrorCallback(error)
+{
+  success.step(function() {
+    assert_unreached("Error callback called in error");
+  });
+  success.done();
+  done();
+}
+
+function BadSuccessCallback(position)
+{
+  fail.step(function() {
+    assert_unreached("Success callback called in error");
+  });
+  fail.done();
+}
+
+function errorCallback(error)
+{
+  test(function() {
+    assert_equals(error.toString(), "[object PositionError]",
+        "PositionError.toString should result in '[object PositionError]' was: " +
+        error.toString());
+  }, "PositionError toString");
+
+  test(function() {
+    assert_equals(error.PERMISSION_DENIED, 1,
+        "PERMISSION_DENIED should be 1 was: " + error.POSITION_DENIED);
+  }, "PERMISSION_DENIED value is 1");
+
+  test(function() {
+    assert_equals(error.POSITION_UNAVAILABLE, 2,
+        "POSITION_UNAVAILABLE should be 2' was: " + error.POSITION_UNAVAILABLE);
+  }, "POSITION_UNAVAILABLE is 2");
+
+  test(function() {
+    assert_equals(error.TIMEOUT, 3,
+        "TIMEOUT should be 3 was: " + error.TIMEOUT);
+  }, "TIMEOUT value is 3");
+
+  fail.done();
+}
+
+success = async_test("getCurrentPosition success callback tests", {timeout:20000});
+
+// with a longer timeout and with the user accepting the position request,
+// this should test the successcallback
+success.step(function() {
+  geo.getCurrentPosition(
+      successCallback,
+      BadErrorCallback,
+      {maximumAge:600000, timeout:10000}
+  );
+});
+
+fail = async_test("getCurrentPosition error callback tests");
+
+// with a timeout of 0 the error callback is hopefully consistently called
+fail.step(function() {
+  geo.getCurrentPosition(
+      BadSuccessCallback,
+      errorCallback,
+      {maximumAge:00, timeout:0}
+  );
+});
+
+</script>
+
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html
new file mode 100755 (executable)
index 0000000..cd9f7d6
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<meta charset='utf-8'>
+<title>Geolocation Test: getCurrentPosition TypeError tests</title>
+<link rel='help' href='http://www.w3.org/TR/geolocation-API/'>
+<script src='../../resources/testharness.js'></script>
+<script src='../../resources/testharnessreport.js'></script>
+<script src='support.js'></script>
+
+<div id='log'></div>
+
+<script>
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00027
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition();
+  });
+}, 'Call getCurrentPosition without arguments, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00011
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition(null);
+  });
+}, 'Call getCurrentPosition with null success callback, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00013
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition(null, null);
+  });
+}, 'Call getCurrentPosition with null success and error callbacks, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00028
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition(3);
+  });
+}, 'Call getCurrentPosition() with wrong type for first argument. Exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00029
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition(dummyFunction, 4);
+  });
+}, 'Call getCurrentPosition() with wrong type for second argument. Exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00030
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.getCurrentPosition(dummyFunction, dummyFunction, 4);
+  });
+}, 'Call getCurrentPosition() with wrong type for third argument. Exception expected.');
+
+done();
+</script>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/style.css b/common/tct-geoallow-w3c-tests/geoallow/w3c/style.css
new file mode 100755 (executable)
index 0000000..ca6f639
--- /dev/null
@@ -0,0 +1,13 @@
+q { font-style: italic }
+li { padding-bottom: 1em; }
+.fail { background-color: #f88; }
+.pass { background-color: #8f8; }
+.maybe { background-color: #aaf; }
+.issue { background-color: #ff8; }
+.na { background-color: #fcc; }
+.spec-issue { color: red }
+.warning { font-size: 150%; color: #f77 }
+.important { font-size: 120%; font-weight: bold }
+ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
+ul.toc li ul { margin-bottom: 0.75em; }
+ul.toc li ul li ul { margin-bottom: 0.25em; }
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/support.js b/common/tct-geoallow-w3c-tests/geoallow/w3c/support.js
new file mode 100755 (executable)
index 0000000..c85b5c8
--- /dev/null
@@ -0,0 +1,30 @@
+var geo;
+
+setup(function() {
+  geo = navigator.geolocation;
+}, {explicit_done: true});
+
+// The spec states that an implementation SHOULD acquire user permission before
+// beggining the position acquisition steps. If an implementation follows this
+// advice, set the following flag to aid debugging.
+var isUsingPreemptivePermission = false;
+
+
+var dummyFunction = function() {};
+
+var positionToString = function(pos) {
+  var c = pos.coords;
+  return '[lat: ' + c.latitude + ', lon: ' + c.longitude + ', acc: ' + c.accuracy + ']';
+};
+
+var errorToString = function(err) {
+  var codeString;
+  switch(err.code) {
+    case err.UNKNOWN_ERROR: codeString = 'UNKNOWN_ERROR'; break;
+    case err.PERMISSION_DENIED: codeString = 'PERMISSION_DENIED'; break;
+    case err.POSITION_UNAVAILABLE: codeString = 'POSITION_UNAVAILABLE'; break;
+    case err.TIMEOUT: codeString = 'TIMEOUT'; break;
+    default: codeString = 'undefined error code'; break;
+  }
+  return '[code: ' + codeString + ' (' + err.code + '), message: ' + (err.message ? err.message : '(empty)') + ']';
+};
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/t.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/t.html
new file mode 100755 (executable)
index 0000000..6c02d1e
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>geolocation test</title>
+    <link rel="stylesheet" type="text/css" href="style.css"/>
+  </head>
+  <body>
+    <p id="instructions"></p>
+    <p id="message">NOT TESTED (script did not run)</p>
+    <hr/>
+    <p><a id="source" href="">View JavaScript source</a></p>
+    <script type="text/javascript" src="common.js"></script>
+ </body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/t00002.js b/common/tct-geoallow-w3c-tests/geoallow/w3c/t00002.js
new file mode 100755 (executable)
index 0000000..d311c2c
--- /dev/null
@@ -0,0 +1,12 @@
+askAccept();
+run(function() {
+  geo.getCurrentPosition(
+      expectedSuccessCallback,
+      function(error) {
+        if (!isUsingPreemptivePermission && error.code == error.POSITION_UNAVAILABLE) {
+          expectedErrorCallback(error);
+        } else {
+          unexpectedErrorCallback(error);
+        }
+      });
+});
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/t00031.js b/common/tct-geoallow-w3c-tests/geoallow/w3c/t00031.js
new file mode 100755 (executable)
index 0000000..3e00aa8
--- /dev/null
@@ -0,0 +1,13 @@
+instruction('Respond to any permission prompt that appears.');
+run(function() {
+  var hasMethodReturned = false;
+  function checkMethodHasReturned() {
+    if (hasMethodReturned) {
+      pass();
+    } else {
+      fail();
+    }
+  }
+  geo.getCurrentPosition(checkMethodHasReturned, checkMethodHasReturned);
+  hasMethodReturned = true;
+});
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/t00062.js b/common/tct-geoallow-w3c-tests/geoallow/w3c/t00062.js
new file mode 100755 (executable)
index 0000000..dec7335
--- /dev/null
@@ -0,0 +1,13 @@
+instruction('Respond to any permission prompt that appears.');
+run(function() {
+  var hasMethodReturned = false;
+  function checkMethodHasReturned() {
+    if (hasMethodReturned) {
+      pass();
+    } else {
+      fail();
+    }
+  }
+  geo.watchPosition(checkMethodHasReturned, checkMethodHasReturned);
+  hasMethodReturned = true;
+});
diff --git a/common/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html b/common/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html
new file mode 100755 (executable)
index 0000000..62a5105
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<meta charset='utf-8'>
+<title>Geolocation Test: watchPosition TypeError tests</title>
+<link rel='help' href='http://www.w3.org/TR/geolocation-API/'>
+<script src='../../resources/testharness.js'></script>
+<script src='../../resources/testharnessreport.js'></script>
+<script src='support.js'></script>
+
+<div id='log'></div>
+
+<script>
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00058
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition();
+  });
+}, 'Call watchPosition without arguments, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00015
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition(null);
+  });
+}, 'Call watchPosition with null success callback, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00017
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition(null, null);
+  });
+}, 'Call watchPosition with null success and error callbacks, check that exception is thrown');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00059
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition(3);
+  });
+}, 'Call watchPosition() with wrong type for first argument. Exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00060
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition(dummyFunction, 4);
+  });
+}, 'Call watchPosition() with wrong type for second argument. Exception expected.');
+
+// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00061
+test(function() {
+  assert_throws(new TypeError(), function() {
+    geo.watchPosition(dummyFunction, dummyFunction, 4);
+  });
+}, 'Call watchPosition() with wrong type for third argument. Exception expected.');
+
+done();
+</script>
diff --git a/common/tct-geoallow-w3c-tests/icon.png b/common/tct-geoallow-w3c-tests/icon.png
new file mode 100755 (executable)
index 0000000..aa50240
Binary files /dev/null and b/common/tct-geoallow-w3c-tests/icon.png differ
diff --git a/common/tct-geoallow-w3c-tests/inst.apk.py b/common/tct-geoallow-w3c-tests/inst.apk.py
new file mode 100755 (executable)
index 0000000..31210db
--- /dev/null
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+
+import os
+import shutil
+import glob
+import time
+import sys
+import subprocess
+from optparse import OptionParser, make_option\r
+import ConfigParser
+
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+PARAMETERS = None
+ADB_CMD = "adb"
+
+
+def doCMD(cmd):
+    # Do not need handle timeout in this short script, let tool do it
+    print "-->> \"%s\"" % cmd
+    output = []
+    cmd_return_code = 1
+    cmd_proc = subprocess.Popen(
+        cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+
+    while True:
+        output_line = cmd_proc.stdout.readline().strip("\r\n")
+        cmd_return_code = cmd_proc.poll()
+        if output_line == '' and cmd_return_code != None:
+            break
+        sys.stdout.write("%s\n" % output_line)
+        sys.stdout.flush()
+        output.append(output_line)
+
+    return (cmd_return_code, output)
+
+
+def uninstPKGs():
+    action_status = True
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        for file in files:
+            if file.endswith(".apk"):
+                cmd = "%s -s %s uninstall org.xwalk.%s" % (
+                    ADB_CMD, PARAMETERS.device, os.path.basename(os.path.splitext(file)[0]))
+                (return_code, output) = doCMD(cmd)
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+    return action_status
+
+
+def instPKGs():
+    action_status = True
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        for file in files:
+            if file.endswith(".apk"):
+                cmd = "%s -s %s install %s" % (ADB_CMD,
+                                               PARAMETERS.device, os.path.join(root, file))
+                (return_code, output) = doCMD(cmd)
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+    return action_status
+
+
+def main():
+    try:
+        usage = "usage: inst.py -i"
+        opts_parser = OptionParser(usage=usage)
+        opts_parser.add_option(
+            "-s", dest="device", action="store", help="Specify device")
+        opts_parser.add_option(
+            "-i", dest="binstpkg", action="store_true", help="Install package")
+        opts_parser.add_option(
+            "-u", dest="buninstpkg", action="store_true", help="Uninstall package")
+        global PARAMETERS
+        (PARAMETERS, args) = opts_parser.parse_args()
+    except Exception, e:
+        print "Got wrong option: %s, exit ..." % e
+        sys.exit(1)
+
+    if not PARAMETERS.device:
+        (return_code, output) = doCMD("adb devices")
+        for line in output:
+            if str.find(line, "\tdevice") != -1:
+                PARAMETERS.device = line.split("\t")[0]
+                break
+
+    if not PARAMETERS.device:
+        print "No device found"
+        sys.exit(1)
+
+    if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
+        print "-i and -u are conflict"
+        sys.exit(1)
+
+    if PARAMETERS.buninstpkg:
+        if not uninstPKGs():
+            sys.exit(1)
+    else:
+        if not instPKGs():
+            sys.exit(1)
+
+if __name__ == "__main__":
+    main()
+    sys.exit(0)
diff --git a/common/tct-geoallow-w3c-tests/inst.wgt.py b/common/tct-geoallow-w3c-tests/inst.wgt.py
new file mode 100755 (executable)
index 0000000..5b1718d
--- /dev/null
@@ -0,0 +1,230 @@
+#!/usr/bin/env python
+
+import os
+import shutil
+import glob
+import time
+import sys
+import subprocess
+import string
+from optparse import OptionParser, make_option\r
+import ConfigParser
+
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+PKG_NAME = os.path.basename(SCRIPT_DIR)
+PARAMETERS = None
+#XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket"
+TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
+tct_parser = ConfigParser.ConfigParser()
+tct_parser.read(TCT_CONFIG_FILE)
+SRC_DIR = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
+PKG_SRC_DIR = "%s/tct/opt/%s" % (SRC_DIR, PKG_NAME)
+
+
+def doCMD(cmd):
+    # Do not need handle timeout in this short script, let tool do it
+    print "-->> \"%s\"" % cmd
+    output = []
+    cmd_return_code = 1
+    cmd_proc = subprocess.Popen(
+        cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+
+    while True:
+        output_line = cmd_proc.stdout.readline().strip("\r\n")
+        cmd_return_code = cmd_proc.poll()
+        if output_line == '' and cmd_return_code != None:
+            break
+        sys.stdout.write("%s\n" % output_line)
+        sys.stdout.flush()
+        output.append(output_line)
+
+    return (cmd_return_code, output)
+
+def updateCMD(cmd=None):
+    if "pkgcmd" in cmd:
+        cmd = "su - %s -c '%s;%s'" % (PARAMETERS.user, XW_ENV, cmd)
+    return cmd
+def getUSERID():
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell id -u %s" % (
+            PARAMETERS.device, PARAMETERS.user)
+    else:
+        cmd = "ssh %s \"id -u %s\"" % (
+            PARAMETERS.device, PARAMETERS.user )
+    return doCMD(cmd)
+
+
+
+
+def getPKGID(pkg_name=None):
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell %s" % (
+            PARAMETERS.device, updateCMD('pkgcmd -l'))
+    else:
+        cmd = "ssh %s \"%s\"" % (
+            PARAMETERS.device, updateCMD('pkgcmd -l'))
+
+    (return_code, output) = doCMD(cmd)
+    if return_code != 0:
+        return None
+
+    test_pkg_id = None
+    for line in output:
+        if line.find("[" + pkg_name + "]") != -1:
+            pkgidIndex = line.split().index("pkgid")
+            test_pkg_id = line.split()[pkgidIndex+1].strip("[]")
+            break
+    return test_pkg_id
+
+
+def doRemoteCMD(cmd=None):
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell %s" % (PARAMETERS.device, updateCMD(cmd))
+    else:
+        cmd = "ssh %s \"%s\"" % (PARAMETERS.device, updateCMD(cmd))
+
+    return doCMD(cmd)
+
+
+def doRemoteCopy(src=None, dest=None):
+    if PARAMETERS.mode == "SDB":
+        cmd_prefix = "sdb -s %s push" % PARAMETERS.device
+        cmd = "%s %s %s" % (cmd_prefix, src, dest)
+    else:
+        cmd = "scp -r %s %s:/%s" % (src, PARAMETERS.device, dest)
+
+    (return_code, output) = doCMD(cmd)
+    doRemoteCMD("sync")
+
+    if return_code != 0:
+        return True
+    else:
+        return False
+
+
+def uninstPKGs():
+    action_status = True
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        if root.endswith("mediasrc"):
+            continue
+
+        for file in files:
+            if file.endswith(".wgt"):
+                pkg_id = getPKGID(os.path.basename(os.path.splitext(file)[0]))
+                if not pkg_id:
+                    action_status = False
+                    continue
+                (return_code, output) = doRemoteCMD(
+                    "pkgcmd -u -t wgt -q -n %s" % pkg_id)
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+
+    (return_code, output) = doRemoteCMD(
+        "rm -rf %s" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+
+    return action_status
+
+
+def instPKGs():
+    action_status = True
+    (return_code, output) = doRemoteCMD(
+        "mkdir -p %s" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        if root.endswith("mediasrc"):
+            continue
+
+        for file in files:
+            if file.endswith(".wgt"):
+                if not doRemoteCopy(os.path.join(root, file), "%s/%s" % (SRC_DIR, file)):
+                    action_status = False
+                (return_code, output) = doRemoteCMD(
+                    "pkgcmd -i -t wgt -q -p %s/%s" % (SRC_DIR, file))
+                doRemoteCMD("rm -rf %s/%s" % (SRC_DIR, file))
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+
+    # Do some special copy/delete... steps
+    '''
+    (return_code, output) = doRemoteCMD(
+        "mkdir -p %s/tests" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+
+    if not doRemoteCopy("specname/tests", "%s/tests" % PKG_SRC_DIR):
+        action_status = False
+    '''
+
+    return action_status
+
+
+def main():
+    try:
+        usage = "usage: inst.py -i"
+        opts_parser = OptionParser(usage=usage)
+        opts_parser.add_option(
+            "-m", dest="mode", action="store", help="Specify mode")
+        opts_parser.add_option(
+            "-s", dest="device", action="store", help="Specify device")
+        opts_parser.add_option(
+            "-i", dest="binstpkg", action="store_true", help="Install package")
+        opts_parser.add_option(
+            "-u", dest="buninstpkg", action="store_true", help="Uninstall package")
+        opts_parser.add_option(
+            "-a", dest="user", action="store", help="User name")
+        global PARAMETERS
+        (PARAMETERS, args) = opts_parser.parse_args()
+    except Exception, e:
+        print "Got wrong option: %s, exit ..." % e
+        sys.exit(1)
+
+    if not PARAMETERS.user:
+        PARAMETERS.user = "owner"
+    if not PARAMETERS.mode:
+        PARAMETERS.mode = "SDB"
+
+    if PARAMETERS.mode == "SDB":
+        if not PARAMETERS.device:
+            (return_code, output) = doCMD("sdb devices")
+            for line in output:
+                if str.find(line, "\tdevice") != -1:
+                    PARAMETERS.device = line.split("\t")[0]
+                    break
+    else:
+        PARAMETERS.mode = "SSH"
+
+    if not PARAMETERS.device:
+        print "No device provided"
+        sys.exit(1)
+
+    user_info = getUSERID()
+    re_code = user_info[0]
+    if re_code == 0 :
+        global XW_ENV
+        userid = user_info[1][0]
+        XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
+    else:
+        print "[Error] cmd commands error : %s"%str(user_info[1])
+        sys.exit(1)
+    if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
+        print "-i and -u are conflict"
+        sys.exit(1)
+
+    if PARAMETERS.buninstpkg:
+        if not uninstPKGs():
+            sys.exit(1)
+    else:
+        if not instPKGs():
+            sys.exit(1)
+
+if __name__ == "__main__":
+    main()
+    sys.exit(0)
diff --git a/common/tct-geoallow-w3c-tests/inst.xpk.py b/common/tct-geoallow-w3c-tests/inst.xpk.py
new file mode 100755 (executable)
index 0000000..211d24c
--- /dev/null
@@ -0,0 +1,231 @@
+#!/usr/bin/env python
+
+import os
+import shutil
+import glob
+import time
+import sys
+import subprocess
+import string
+from optparse import OptionParser, make_option\r
+import ConfigParser
+
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+PKG_NAME = os.path.basename(SCRIPT_DIR)
+PARAMETERS = None
+#XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket"
+TCT_CONFIG_FILE = "/opt/tools/TCT_CONFIG"
+tct_parser = ConfigParser.ConfigParser()
+tct_parser.read(TCT_CONFIG_FILE)
+SRC_DIR = tct_parser.get('DEVICE', 'DEVICE_SUITE_TARGET_30')
+PKG_SRC_DIR = "%s/tct/opt/%s" % (SRC_DIR, PKG_NAME)
+
+
+def doCMD(cmd):
+    # Do not need handle timeout in this short script, let tool do it
+    print "-->> \"%s\"" % cmd
+    output = []
+    cmd_return_code = 1
+    cmd_proc = subprocess.Popen(
+        cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+
+    while True:
+        output_line = cmd_proc.stdout.readline().strip("\r\n")
+        cmd_return_code = cmd_proc.poll()
+        if output_line == '' and cmd_return_code != None:
+            break
+        sys.stdout.write("%s\n" % output_line)
+        sys.stdout.flush()
+        output.append(output_line)
+
+    return (cmd_return_code, output)
+
+
+def updateCMD(cmd=None):
+    if "pkgcmd" in cmd:
+        cmd = "su - %s -c '%s;%s'" % (PARAMETERS.user, XW_ENV, cmd)
+    return cmd
+def getUSERID():
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell id -u %s" % (
+            PARAMETERS.device, PARAMETERS.user)
+    else:
+        cmd = "ssh %s \"id -u %s\"" % (
+            PARAMETERS.device, PARAMETERS.user )
+    return doCMD(cmd)
+
+
+
+
+def getPKGID(pkg_name=None):
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell %s" % (
+            PARAMETERS.device, updateCMD('pkgcmd -l'))
+    else:
+        cmd = "ssh %s \"%s\"" % (
+            PARAMETERS.device, updateCMD('pkgcmd -l'))
+
+    (return_code, output) = doCMD(cmd)
+    if return_code != 0:
+        return None
+
+    test_pkg_id = None
+    for line in output:
+        if line.find("[" + pkg_name + "]") != -1:
+            pkgidIndex = line.split().index("pkgid")
+            test_pkg_id = line.split()[pkgidIndex+1].strip("[]")
+            break
+    return test_pkg_id
+
+
+def doRemoteCMD(cmd=None):
+    if PARAMETERS.mode == "SDB":
+        cmd = "sdb -s %s shell %s" % (PARAMETERS.device, updateCMD(cmd))
+    else:
+        cmd = "ssh %s \"%s\"" % (PARAMETERS.device, updateCMD(cmd))
+
+    return doCMD(cmd)
+
+
+def doRemoteCopy(src=None, dest=None):
+    if PARAMETERS.mode == "SDB":
+        cmd_prefix = "sdb -s %s push" % PARAMETERS.device
+        cmd = "%s %s %s" % (cmd_prefix, src, dest)
+    else:
+        cmd = "scp -r %s %s:/%s" % (src, PARAMETERS.device, dest)
+
+    (return_code, output) = doCMD(cmd)
+    doRemoteCMD("sync")
+
+    if return_code != 0:
+        return True
+    else:
+        return False
+
+
+def uninstPKGs():
+    action_status = True
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        if root.endswith("mediasrc"):
+            continue
+
+        for file in files:
+            if file.endswith(".xpk"):
+                pkg_id = getPKGID(os.path.basename(os.path.splitext(file)[0]))
+                if not pkg_id:
+                    action_status = False
+                    continue
+                (return_code, output) = doRemoteCMD(
+                    "pkgcmd -u -t xpk -q -n %s" % pkg_id)
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+
+    (return_code, output) = doRemoteCMD(
+        "rm -rf %s" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+
+    return action_status
+
+
+def instPKGs():
+    action_status = True
+    (return_code, output) = doRemoteCMD(
+        "mkdir -p %s" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+    for root, dirs, files in os.walk(SCRIPT_DIR):
+        if root.endswith("mediasrc"):
+            continue
+
+        for file in files:
+            if file.endswith(".xpk"):
+                if not doRemoteCopy(os.path.join(root, file), "%s/%s" % (SRC_DIR, file)):
+                    action_status = False
+                (return_code, output) = doRemoteCMD(
+                    "pkgcmd -i -t xpk -q -p %s/%s" % (SRC_DIR, file))
+                doRemoteCMD("rm -rf %s/%s" % (SRC_DIR, file))
+                for line in output:
+                    if "Failure" in line:
+                        action_status = False
+                        break
+
+    # Do some special copy/delete... steps
+    '''
+    (return_code, output) = doRemoteCMD(
+        "mkdir -p %s/tests" % PKG_SRC_DIR)
+    if return_code != 0:
+        action_status = False
+
+    if not doRemoteCopy("specname/tests", "%s/tests" % PKG_SRC_DIR):
+        action_status = False
+    '''
+
+    return action_status
+
+
+def main():
+    try:
+        usage = "usage: inst.py -i"
+        opts_parser = OptionParser(usage=usage)
+        opts_parser.add_option(
+            "-m", dest="mode", action="store", help="Specify mode")
+        opts_parser.add_option(
+            "-s", dest="device", action="store", help="Specify device")
+        opts_parser.add_option(
+            "-i", dest="binstpkg", action="store_true", help="Install package")
+        opts_parser.add_option(
+            "-u", dest="buninstpkg", action="store_true", help="Uninstall package")
+        opts_parser.add_option(
+            "-a", dest="user", action="store", help="User name")
+        global PARAMETERS
+        (PARAMETERS, args) = opts_parser.parse_args()
+    except Exception, e:
+        print "Got wrong option: %s, exit ..." % e
+        sys.exit(1)
+
+    if not PARAMETERS.user:
+        PARAMETERS.user = "owner"
+    if not PARAMETERS.mode:
+        PARAMETERS.mode = "SDB"
+
+    if PARAMETERS.mode == "SDB":
+        if not PARAMETERS.device:
+            (return_code, output) = doCMD("sdb devices")
+            for line in output:
+                if str.find(line, "\tdevice") != -1:
+                    PARAMETERS.device = line.split("\t")[0]
+                    break
+    else:
+        PARAMETERS.mode = "SSH"
+
+    if not PARAMETERS.device:
+        print "No device provided"
+        sys.exit(1)
+
+    user_info = getUSERID()
+    re_code = user_info[0]
+    if re_code == 0 :
+        global XW_ENV
+        userid = user_info[1][0]
+        XW_ENV = "export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%s/dbus/user_bus_socket"%str(userid)
+    else:
+        print "[Error] cmd commands error : %s"%str(user_info[1])
+        sys.exit(1)
+    if PARAMETERS.binstpkg and PARAMETERS.buninstpkg:
+        print "-i and -u are conflict"
+        sys.exit(1)
+
+    if PARAMETERS.buninstpkg:
+        if not uninstPKGs():
+            sys.exit(1)
+    else:
+        if not instPKGs():
+            sys.exit(1)
+
+if __name__ == "__main__":
+    main()
+    sys.exit(0)
diff --git a/common/tct-geoallow-w3c-tests/manifest.json b/common/tct-geoallow-w3c-tests/manifest.json
new file mode 100755 (executable)
index 0000000..9cf72be
--- /dev/null
@@ -0,0 +1,12 @@
+{
+    "version": "3.0",
+    "name": "tct-geoallow-w3c-tests",
+    "permissions": ["tabs", "unlimited_storage", "notifications", "http://*/*", "https://*/*"],
+    "description": "tct-geoallow-w3c-tests",
+    "file_name": "manifest.json",
+    "app": {
+        "launch": {
+            "local_path": "index.html"
+        }
+    }
+}
diff --git a/common/tct-geoallow-w3c-tests/pack.py b/common/tct-geoallow-w3c-tests/pack.py
new file mode 100755 (executable)
index 0000000..e67cd36
--- /dev/null
@@ -0,0 +1,1104 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2014 Intel Corporation.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of works must retain the original copyright notice, this
+#   list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the original copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# * Neither the name of Intel Corporation nor the names of its contributors
+#   may be used to endorse or promote products derived from this work without
+#   specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+# AND ANY EXPRESS 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 INTEL CORPORATION 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.
+#
+# Authors:
+#         Fan, Yugang <yugang.fan@intel.com>
+
+import os
+import shutil
+import glob
+import time
+import sys
+import stat
+import random
+import json
+import logging
+import zipfile
+import signal
+import subprocess
+from optparse import OptionParser
+
+reload(sys)
+sys.setdefaultencoding('utf8')
+
+TOOL_VERSION = "v0.1"
+VERSION_FILE = "VERSION"
+DEFAULT_CMD_TIMEOUT = 600
+PKG_TYPES = ["apk", "xpk", "wgt", "apk-aio", "cordova-aio", "cordova", "embeddingapi"]
+PKG_MODES = ["shared", "embedded"]
+PKG_ARCHS = ["x86", "arm"]
+PKG_BLACK_LIST = []
+PKG_NAME = None
+BUILD_PARAMETERS = None
+BUILD_ROOT = None
+BUILD_ROOT_SRC = None
+BUILD_ROOT_SRC_PKG = None
+BUILD_ROOT_SRC_PKG_APP = None
+BUILD_ROOT_SRC_SUB_APP = None
+BUILD_ROOT_PKG = None
+BUILD_ROOT_PKG_APP = None
+LOG = None
+LOG_LEVEL = logging.DEBUG
+
+
+class ColorFormatter(logging.Formatter):
+
+    def __init__(self, msg):
+        logging.Formatter.__init__(self, msg)
+
+    def format(self, record):
+        red, green, yellow, blue = range(4)
+        colors = {'INFO': green, 'DEBUG': blue,
+                  'WARNING': yellow, 'ERROR': red}
+        msg = record.msg
+        if msg[0] == "+":
+            msg = "\33[01m" + msg[1:] + "\033[0m"
+        elif msg[0] == "=":
+            msg = "\33[07m" + msg + "\033[0m"
+        levelname = record.levelname
+        if levelname in colors:
+            msg_color = "\033[0;%dm" % (
+                31 + colors[levelname]) + msg + "\033[0m"
+            record.msg = msg_color
+
+        return logging.Formatter.format(self, record)
+
+
+def pidExists(pid):
+    if pid < 0:
+        return False
+    try:
+        os.kill(pid, 0)
+    except OSError:
+        return False
+    else:
+        return True
+
+
+def isWindows():
+    return sys.platform == "cygwin" or sys.platform.startswith("win")
+
+
+def killProcesses(ppid=None):
+    if isWindows():
+        subprocess.check_call("TASKKILL /F /PID %s /T" % ppid)
+    else:
+        ppid = str(ppid)
+        pidgrp = []
+
+        def GetChildPids(ppid):
+            command = "ps -ef | awk '{if ($3 ==%s) print $2;}'" % str(ppid)
+            pids = os.popen(command).read()
+            pids = pids.split()
+            return pids
+
+        pidgrp.extend(GetChildPids(ppid))
+        for pid in pidgrp:
+            pidgrp.extend(GetChildPids(pid))
+
+        pidgrp.insert(0, ppid)
+        while len(pidgrp) > 0:
+            pid = pidgrp.pop()
+            try:
+                os.kill(int(pid), signal.SIGKILL)
+                return True
+            except OSError:
+                try:
+                    os.popen("kill -9 %d" % int(pid))
+                    return True
+                except Exception:
+                    return False
+
+
+def safelyGetValue(origin_json=None, key=None):
+    if origin_json and key and key in origin_json:
+        return origin_json[key]
+    return None
+
+
+def checkContains(origin_str=None, key_str=None):
+    if origin_str.upper().find(key_str.upper()) >= 0:
+        return True
+    return False
+
+
+def getRandomStr():
+    str_pool = list("abcdefghijklmnopqrstuvwxyz1234567890")
+    random_str = ""
+    for i in range(15):
+        index = random.randint(0, len(str_pool) - 1)
+        random_str = random_str + str_pool[index]
+
+    return random_str
+
+
+def zipDir(dir_path, zip_file):
+    try:
+        if os.path.exists(zip_file):
+            if not doRemove([zip_file]):
+                return False
+        if not os.path.exists(os.path.dirname(zip_file)):
+            os.makedirs(os.path.dirname(zip_file))
+        z_file = zipfile.ZipFile(zip_file, "w")
+        orig_dir = os.getcwd()
+        os.chdir(dir_path)
+        for root, dirs, files in os.walk("."):
+            for i_file in files:
+                LOG.info("zip %s" % os.path.join(root, i_file))
+                z_file.write(os.path.join(root, i_file))
+        z_file.close()
+        os.chdir(orig_dir)
+    except Exception as e:
+        LOG.error("Fail to pack %s to %s: %s" % (dir_path, zip_file, e))
+        return False
+    LOG.info("Done to zip %s to %s" % (dir_path, zip_file))
+    return True
+
+
+def overwriteCopy(src, dest, symlinks=False, ignore=None):
+    if not os.path.exists(dest):
+        os.makedirs(dest)
+        shutil.copystat(src, dest)
+    sub_list = os.listdir(src)
+    if ignore:
+        excl = ignore(src, sub_list)
+        sub_list = [x for x in sub_list if x not in excl]
+    for i_sub in sub_list:
+        s_path = os.path.join(src, i_sub)
+        d_path = os.path.join(dest, i_sub)
+        if symlinks and os.path.islink(s_path):
+            if os.path.lexists(d_path):
+                os.remove(d_path)
+            os.symlink(os.readlink(s_path), d_path)
+            try:
+                s_path_s = os.lstat(s_path)
+                s_path_mode = stat.S_IMODE(s_path_s.st_mode)
+                os.lchmod(d_path, s_path_mode)
+            except Exception:
+                pass
+        elif os.path.isdir(s_path):
+            overwriteCopy(s_path, d_path, symlinks, ignore)
+        else:
+            shutil.copy2(s_path, d_path)
+
+
+def doCopy(src_item=None, dest_item=None):
+    LOG.info("Copying %s to %s" % (src_item, dest_item))
+    try:
+        if os.path.isdir(src_item):
+            overwriteCopy(src_item, dest_item, symlinks=True)
+        else:
+            if not os.path.exists(os.path.dirname(dest_item)):
+                LOG.info("Create non-existent dir: %s" %
+                         os.path.dirname(dest_item))
+                os.makedirs(os.path.dirname(dest_item))
+            shutil.copy2(src_item, dest_item)
+    except Exception as e:
+        LOG.error("Fail to copy file %s: %s" % (src_item, e))
+        return False
+
+    return True
+
+
+def doRemove(target_file_list=None):
+    for i_file in target_file_list:
+        LOG.info("Removing %s" % i_file)
+        try:
+            if os.path.isdir(i_file):
+                shutil.rmtree(i_file)
+            else:
+                os.remove(i_file)
+        except Exception as e:
+            LOG.error("Fail to remove file %s: %s" % (i_file, e))
+            return False
+    return True
+
+
+def updateCopylistPrefix(src_default, dest_default, src_sub, dest_sub):
+    src_new = ""
+    dest_new = ""
+    PACK_TOOL_TAG = "PACK-TOOL-ROOT"
+
+    if src_sub[0:len(PACK_TOOL_TAG)] == PACK_TOOL_TAG:
+        src_new = src_sub.replace(PACK_TOOL_TAG, BUILD_PARAMETERS.pkgpacktools)
+    else:
+        src_new = os.path.join(src_default, src_sub)
+
+    if dest_sub[0:len(PACK_TOOL_TAG)] == PACK_TOOL_TAG:
+        dest_new = dest_sub.replace(PACK_TOOL_TAG, BUILD_ROOT)
+    else:
+        dest_new = os.path.join(dest_default, dest_sub)
+
+    return (src_new, dest_new)
+
+
+def buildSRC(src=None, dest=None, build_json=None):
+    if not os.path.exists(src):
+        LOG.info("+Src dir does not exist, skip build src process ...")
+        return True
+    if not doCopy(src, dest):
+        return False
+    if "blacklist" in build_json:
+        if build_json["blacklist"].count("") > 0:
+            build_json["blacklist"].remove("")
+        black_file_list = []
+        for i_black in build_json["blacklist"]:
+            black_file_list = black_file_list + \
+                glob.glob(os.path.join(dest, i_black))
+
+        black_file_list = list(set(black_file_list))
+        if not doRemove(black_file_list):
+            return False
+
+    if "copylist" in build_json:
+        for i_s_key in build_json["copylist"].keys():
+            if i_s_key and build_json["copylist"][i_s_key]:
+                (src_updated, dest_updated) = updateCopylistPrefix(
+                    src, dest, i_s_key, build_json["copylist"][i_s_key])
+                if not doCopy(src_updated, dest_updated):
+                    return False
+
+    return True
+
+
+def exitHandler(return_code=1):
+    LOG.info("+Cleaning build root folder ...")
+    if not BUILD_PARAMETERS.bnotclean and os.path.exists(BUILD_ROOT):
+        if not doRemove([BUILD_ROOT]):
+            LOG.error("Fail to clean build root, exit ...")
+            sys.exit(1)
+
+    if return_code == 0:
+        LOG.info("================ DONE ================")
+    else:
+        LOG.error(
+            "================ Found Something Wrong !!! ================")
+    sys.exit(return_code)
+
+
+def prepareBuildRoot():
+    LOG.info("+Preparing build root folder ...")
+    global BUILD_ROOT
+    global BUILD_ROOT_SRC
+    global BUILD_ROOT_SRC_PKG
+    global BUILD_ROOT_SRC_PKG_APP
+    global BUILD_ROOT_SRC_SUB_APP
+    global BUILD_ROOT_PKG
+    global BUILD_ROOT_PKG_APP
+
+    while True:
+        BUILD_ROOT = os.path.join("/tmp", getRandomStr())
+        if os.path.exists(BUILD_ROOT):
+            continue
+        else:
+            break
+
+    BUILD_ROOT_SRC = os.path.join(BUILD_ROOT, PKG_NAME)
+    BUILD_ROOT_SRC_PKG = os.path.join(BUILD_ROOT, "pkg")
+    BUILD_ROOT_SRC_PKG_APP = os.path.join(BUILD_ROOT, "pkg-app")
+    BUILD_ROOT_SRC_SUB_APP = os.path.join(BUILD_ROOT, "sub-app")
+    BUILD_ROOT_PKG = os.path.join(BUILD_ROOT, "pkg", "opt", PKG_NAME)
+    BUILD_ROOT_PKG_APP = os.path.join(BUILD_ROOT, "pkg-app", "opt", PKG_NAME)
+
+    if not doCopy(BUILD_PARAMETERS.srcdir, BUILD_ROOT_SRC):
+        return False
+    if not doRemove(
+            glob.glob(os.path.join(BUILD_ROOT_SRC, "%s*.zip" % PKG_NAME))):
+        return False
+
+    return True
+
+
+def doCMD(cmd, time_out=DEFAULT_CMD_TIMEOUT, no_check_return=False):
+    LOG.info("Doing CMD: [ %s ]" % cmd)
+    pre_time = time.time()
+    cmd_proc = subprocess.Popen(args=cmd, shell=True)
+    while True:
+        cmd_exit_code = cmd_proc.poll()
+        elapsed_time = time.time() - pre_time
+        if cmd_exit_code is None:
+            if elapsed_time >= time_out:
+                killProcesses(ppid=cmd_proc.pid)
+                LOG.error("Timeout to exe CMD")
+                return False
+        else:
+            if not no_check_return and cmd_exit_code != 0:
+                LOG.error("Fail to exe CMD")
+                return False
+            break
+        time.sleep(2)
+    return True
+
+
+def doCMDWithOutput(cmd, time_out=DEFAULT_CMD_TIMEOUT):
+    LOG.info("Doing CMD: [ %s ]" % cmd)
+    pre_time = time.time()
+    output = []
+    cmd_return_code = 1
+    cmd_proc = subprocess.Popen(
+        cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+
+    while True:
+        output_line = cmd_proc.stdout.readline().strip("\r\n")
+        cmd_return_code = cmd_proc.poll()
+        elapsed_time = time.time() - pre_time
+        if cmd_return_code is None:
+            if elapsed_time >= time_out:
+                killProcesses(ppid=cmd_proc.pid)
+                LOG.error("Timeout to exe CMD")
+                return False
+        elif output_line == '' and cmd_return_code is not None:
+            break
+
+        sys.stdout.write("%s\n" % output_line)
+        sys.stdout.flush()
+        output.append(output_line)
+    if cmd_return_code != 0:
+        LOG.error("Fail to exe CMD")
+
+    return (cmd_return_code, output)
+
+
+def packXPK(build_json=None, app_src=None, app_dest=None, app_name=None):
+    pack_tool = os.path.join(BUILD_ROOT, "make_xpk.py")
+    if not os.path.exists(pack_tool):
+        if not doCopy(
+                os.path.join(BUILD_PARAMETERS.pkgpacktools, "make_xpk.py"),
+                pack_tool):
+            return False
+    orig_dir = os.getcwd()
+    os.chdir(BUILD_ROOT)
+    if os.path.exists("key.file"):
+        if not doRemove(["key.file"]):
+            os.chdir(orig_dir)
+            return False
+
+    key_file = safelyGetValue(build_json, "key-file")
+    if key_file == "key.file":
+        LOG.error(
+            "\"key.file\" is reserved name for default key file, "
+            "pls change the key file name ...")
+        os.chdir(orig_dir)
+        return False
+    if key_file:
+        pack_cmd = "python make_xpk.py %s %s -o %s" % (
+            app_src, key_file, os.path.join(app_dest, "%s.xpk" % app_name))
+    else:
+        pack_cmd = "python make_xpk.py %s key.file -o %s" % (
+            app_src, os.path.join(app_dest, "%s.xpk" % app_name))
+    if not doCMD(pack_cmd, DEFAULT_CMD_TIMEOUT):
+        os.chdir(orig_dir)
+        return False
+
+    os.chdir(orig_dir)
+    return True
+
+
+def packWGT(build_json=None, app_src=None, app_dest=None, app_name=None):
+    if not zipDir(app_src, os.path.join(app_dest, "%s.wgt" % app_name)):
+        return False
+
+    if BUILD_PARAMETERS.signature == True:
+        if safelyGetValue(build_json, "sign-flag") == "true":
+            if not os.path.exists(os.path.join(BUILD_ROOT, "signing")):
+                if not doCopy(
+                        os.path.join(BUILD_PARAMETERS.pkgpacktools, "signing"),
+                        os.path.join(BUILD_ROOT, "signing")):
+                    return False
+            signing_cmd = "%s --dist platform %s" % (
+                os.path.join(BUILD_ROOT, "signing", "sign-widget.sh"),
+                os.path.join(app_dest, "%s.wgt" % app_name))
+            if not doCMD(signing_cmd, DEFAULT_CMD_TIMEOUT):
+                return False
+
+    return True
+
+
+def packAPK(build_json=None, app_src=None, app_dest=None, app_name=None):
+    app_name = app_name.replace("-", "_")
+
+    if not os.path.exists(os.path.join(BUILD_ROOT, "crosswalk")):
+        if not doCopy(
+                os.path.join(BUILD_PARAMETERS.pkgpacktools, "crosswalk"),
+                os.path.join(BUILD_ROOT, "crosswalk")):
+            return False
+
+    files = glob.glob(os.path.join(BUILD_ROOT, "crosswalk", "*.apk"))
+    if files:
+        if not doRemove(files):
+            return False
+
+    ext_opt = ""
+    cmd_opt = ""
+    url_opt = ""
+    mode_opt = ""
+    arch_opt = ""
+    icon_opt = ""
+
+    common_opts = safelyGetValue(build_json, "apk-common-opts")
+    if common_opts is None:
+        common_opts = ""
+
+    tmp_opt = safelyGetValue(build_json, "apk-ext-opt")
+    if tmp_opt:
+        ext_opt = "--extensions='%s'" % os.path.join(BUILD_ROOT_SRC, tmp_opt)
+
+    tmp_opt = safelyGetValue(build_json, "apk-cmd-opt")
+    if tmp_opt:
+        cmd_opt = "--xwalk-command-line='%s'" % tmp_opt
+
+    tmp_opt = safelyGetValue(build_json, "apk-url-opt")
+    if tmp_opt:
+        url_opt = "--app-url='%s'" % tmp_opt
+
+    tmp_opt = safelyGetValue(build_json, "apk-mode-opt")
+    if tmp_opt:
+        if tmp_opt in PKG_MODES:
+            mode_opt = "--mode=%s" % tmp_opt
+        else:
+            LOG.error("Got wrong app mode: %s" % tmp_opt)
+            return False
+    else:
+        mode_opt = "--mode=%s" % BUILD_PARAMETERS.pkgmode
+
+    tmp_opt = safelyGetValue(build_json, "apk-arch-opt")
+    if tmp_opt:
+        if tmp_opt in PKG_ARCHS:
+            arch_opt = "--arch=%s" % tmp_opt
+        else:
+            LOG.error("Got wrong app arch: %s" % tmp_opt)
+            return False
+    else:
+        arch_opt = "--arch=%s" % BUILD_PARAMETERS.pkgarch
+
+    tmp_opt = safelyGetValue(build_json, "apk-icon-opt")
+    if tmp_opt:
+        icon_opt = "--icon=%s" % tmp_opt
+    elif tmp_opt == "":
+        icon_opt = ""
+    else:
+        icon_opt = "--icon=%s/icon.png" % app_src
+
+    if safelyGetValue(build_json, "apk-type") == "MANIFEST":
+        pack_cmd = "python make_apk.py --package=org.xwalk.%s " \
+            "--manifest=%s/manifest.json  %s %s %s %s %s" % (
+                app_name, app_src, mode_opt, arch_opt,
+                ext_opt, cmd_opt, common_opts)
+    elif safelyGetValue(build_json, "apk-type") == "HOSTEDAPP":
+        if not url_opt:
+            LOG.error(
+                "Fail to find the key \"apk-url-opt\" for hosted APP packing")
+            return False
+        pack_cmd = "python make_apk.py --package=org.xwalk.%s --name=%s %s " \
+                   "%s %s %s %s %s" % (
+                       app_name, app_name, mode_opt, arch_opt, ext_opt,
+                       cmd_opt, url_opt, common_opts)
+    else:
+        pack_cmd = "python make_apk.py --package=org.xwalk.%s --name=%s " \
+                   "--app-root=%s --app-local-path=index.html %s %s " \
+                   "%s %s %s %s" % (
+                       app_name, app_name, app_src, icon_opt, mode_opt,
+                       arch_opt, ext_opt, cmd_opt, common_opts)
+
+    orig_dir = os.getcwd()
+    os.chdir(os.path.join(BUILD_ROOT, "crosswalk"))
+    if not doCMD(pack_cmd, DEFAULT_CMD_TIMEOUT):
+        os.chdir(orig_dir)
+        return False
+
+    files = glob.glob(os.path.join(BUILD_ROOT, "crosswalk", "*.apk"))
+    if files:
+        if not doCopy(files[0], os.path.join(app_dest, "%s.apk" % app_name)):
+            os.chdir(orig_dir)
+            return False
+    else:
+        LOG.error("Fail to find the apk file")
+        os.chdir(orig_dir)
+        return False
+
+    os.chdir(orig_dir)
+    return True
+
+
+def packCordova(build_json=None, app_src=None, app_dest=None, app_name=None):
+    pack_tool = os.path.join(BUILD_ROOT, "cordova")
+    app_name = app_name.replace("-", "_")
+    if not os.path.exists(pack_tool):
+        if not doCopy(
+                os.path.join(BUILD_PARAMETERS.pkgpacktools, "cordova"),
+                pack_tool):
+            return False
+
+    plugin_tool = os.path.join(BUILD_ROOT, "cordova_plugins")
+    if not os.path.exists(plugin_tool):
+        if not doCopy(
+                os.path.join(BUILD_PARAMETERS.pkgpacktools, "cordova_plugins"),
+                plugin_tool):
+            return False
+
+    orig_dir = os.getcwd()
+    os.chdir(pack_tool)
+    pack_cmd = "bin/create %s org.xwalk.%s %s" % (
+        app_name, app_name, app_name)
+    if not doCMD(pack_cmd, DEFAULT_CMD_TIMEOUT):
+        os.chdir(orig_dir)
+        return False
+
+    os.chdir(os.path.join(pack_tool, app_name))
+    plugin_dirs = os.listdir(plugin_tool)
+    for i_dir in plugin_dirs:
+        i_plugin_dir = os.path.join(plugin_tool, i_dir)
+        plugin_install_cmd = "plugman install --platform android --project " \
+                             "./ --plugin %s" % i_plugin_dir
+        if not doCMD(plugin_install_cmd, DEFAULT_CMD_TIMEOUT):
+            os.chdir(orig_dir)
+            return False
+    os.chdir(pack_tool)
+
+    if not doCopy(app_src, os.path.join(pack_tool, app_name, "assets", "www")):
+        os.chdir(orig_dir)
+        return False
+    os.chdir(os.path.join(BUILD_ROOT, "cordova", app_name))
+    pack_cmd = "./cordova/build"
+    if not doCMD(pack_cmd, DEFAULT_CMD_TIMEOUT):
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(os.path.join(
+            BUILD_ROOT, "cordova", app_name, "bin", "%s-debug.apk" %
+            app_name),
+            os.path.join(app_dest, "%s.apk" % app_name)):
+        os.chdir(orig_dir)
+        return False
+    os.chdir(orig_dir)
+    return True
+
+
+def packEmbeddingAPI(
+        build_json=None, app_src=None, app_dest=None, app_name=None):
+    app_name = app_name.replace("-", "_")
+
+    library_dir_name = safelyGetValue(build_json, "embeddingapi-library-name")
+    if not library_dir_name:
+        LOG.error("Fail to get embeddingapi-library-name ...")
+        return False
+
+    new_library_dir_name = "core_library"
+    pack_tool = os.path.join(app_src, "..", new_library_dir_name)
+
+    if os.path.exists(pack_tool):
+        if not doRemove([pack_tool]):
+            return False
+
+    if not doCopy(
+            os.path.join(BUILD_PARAMETERS.pkgpacktools, library_dir_name),
+            pack_tool):
+        return False
+
+    if os.path.exists(os.path.join(pack_tool, "bin", "res", "crunch")):
+        if not doRemove([os.path.join(pack_tool, "bin", "res", "crunch")]):
+            return False
+
+    orig_dir = os.getcwd()
+    android_project_path = os.path.join(app_src, "android-project")
+    try:
+        os.makedirs(android_project_path)
+    except Exception as e:
+        LOG.error("Fail to create tmp project dir: %s" % e)
+        return False
+
+    (return_code, output) = doCMDWithOutput("android list target")
+    api_level = ""
+    for line in output:
+        if "API level" in line:
+            api_level = line.split(":")[1].strip()
+            break
+    if not api_level:
+        LOG.error("Fail to get Android API Level")
+        os.chdir(orig_dir)
+        return False
+
+    android_project_cmd = "android create project --name %s --target " \
+                          "android-%s --path %s --package com.%s " \
+                          "--activity MainActivity" % (
+                              app_name, api_level, android_project_path, app_name)
+    if not doCMD(android_project_cmd):
+        os.chdir(orig_dir)
+        return False
+
+    try:
+        update_file = open(
+            os.path.join(android_project_path, "project.properties"), "a+")
+        update_file.writelines(
+            "{0}\n".format(
+                "android.library.reference.1=../%s" %
+                new_library_dir_name))
+        update_file.close()
+    except Exception as e:
+        LOG.error(
+            "Fail to update %s: %s" %
+            (os.path.join(
+                android_project_path,
+                "project.properties"),
+                e))
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(os.path.join(android_project_path, "build.xml"),
+                  os.path.join(app_src, "build.xml")):
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(
+            os.path.join(android_project_path, "project.properties"),
+            os.path.join(app_src, "project.properties")):
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(
+            os.path.join(android_project_path, "local.properties"),
+            os.path.join(app_src, "local.properties")):
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(
+            os.path.join(android_project_path, "local.properties"),
+            os.path.join(pack_tool, "local.properties")):
+        os.chdir(orig_dir)
+        return False
+
+    os.chdir(app_src)
+    if not doCMD("ant debug"):
+        os.chdir(orig_dir)
+        return False
+
+    if not doCopy(
+            os.path.join(app_src, "bin", "%s-debug.apk" % app_name),
+            os.path.join(app_dest, "%s.apk" % app_name)):
+        os.chdir(orig_dir)
+        return False
+    os.chdir(orig_dir)
+    return True
+
+
+def packAPP(build_json=None, app_src=None, app_dest=None, app_name=None):
+    LOG.info("Packing %s(%s)" % (app_name, app_src))
+    if not os.path.exists(app_dest):
+        try:
+            os.makedirs(app_dest)
+        except Exception as e:
+            LOG.error("Fail to init package install dest dir: %s" % e)
+            return False
+
+    if checkContains(BUILD_PARAMETERS.pkgtype, "XPK"):
+        if not packXPK(build_json, app_src, app_dest, app_name):
+            return False
+    elif checkContains(BUILD_PARAMETERS.pkgtype, "WGT"):
+        if not packWGT(build_json, app_src, app_dest, app_name):
+            return False
+    elif checkContains(BUILD_PARAMETERS.pkgtype, "APK"):
+        if not packAPK(build_json, app_src, app_dest, app_name):
+            return False
+    elif checkContains(BUILD_PARAMETERS.pkgtype, "CORDOVA"):
+        if not packCordova(build_json, app_src, app_dest, app_name):
+            return False
+    elif checkContains(BUILD_PARAMETERS.pkgtype, "EMBEDDINGAPI"):
+        if not packEmbeddingAPI(build_json, app_src, app_dest, app_name):
+            return False
+    else:
+        LOG.error("Got wrong pkg type: %s" % BUILD_PARAMETERS.pkgtype)
+        return False
+
+    LOG.info("Success to pack APP: %s" % app_name)
+    return True
+
+
+def createIndexFile(index_file_path=None, hosted_app=None):
+    try:
+        if hosted_app:
+            index_url = "http://127.0.0.1/opt/%s/webrunner/index.html?" \
+                "testsuite=../tests.xml&testprefix=../../.." % PKG_NAME
+        else:
+            index_url = "opt/%s/webrunner/index.html?testsuite=../tests.xml" \
+                        "&testprefix=../../.." % PKG_NAME
+        html_content = "<!doctype html><head><meta http-equiv='Refresh' " \
+                       "content='1; url=%s'></head>" % index_url
+        index_file = open(index_file_path, "w")
+        index_file.write(html_content)
+        index_file.close()
+    except Exception as e:
+        LOG.error("Fail to create index.html for top-app: %s" % e)
+        return False
+    LOG.info("Success to create index file %s" % index_file_path)
+    return True
+
+
+def buildSubAPP(app_dir=None, build_json=None, app_dest_default=None):
+    app_dir_inside = safelyGetValue(build_json, "app-dir")
+    if app_dir_inside:
+        app_dir = app_dir_inside
+    LOG.info("+Building sub APP(s) from %s ..." % app_dir)
+    app_dir = os.path.join(BUILD_ROOT_SRC, app_dir)
+    app_name = safelyGetValue(build_json, "app-name")
+    if not app_name:
+        app_name = os.path.basename(app_dir)
+
+    app_src = os.path.join(BUILD_ROOT_SRC_SUB_APP, app_name)
+    if buildSRC(app_dir, app_src, build_json):
+        app_dest = safelyGetValue(build_json, "install-path")
+        if app_dest:
+            app_dest = os.path.join(app_dest_default, app_dest)
+        else:
+            app_dest = app_dest_default
+
+        if safelyGetValue(build_json, "all-apps") == "true":
+            app_dirs = os.listdir(app_src)
+            apps_num = 0
+            for i_app_dir in app_dirs:
+                if os.path.isdir(os.path.join(app_src, i_app_dir)):
+                    i_app_name = os.path.basename(i_app_dir)
+                    if not packAPP(
+                            build_json, os.path.join(app_src, i_app_name),
+                            app_dest, i_app_name):
+                        return False
+                    else:
+                        apps_num = apps_num + 1
+            if apps_num > 0:
+                LOG.info("Totally packed %d apps in %s" % (apps_num, app_dir))
+                return True
+        else:
+            return packAPP(build_json, app_src, app_dest, app_name)
+    return False
+
+
+def buildPKGAPP(build_json=None):
+    LOG.info("+Building package APP ...")
+    if not doCopy(os.path.join(BUILD_ROOT_SRC, "icon.png"),
+                  os.path.join(BUILD_ROOT_SRC_PKG_APP, "icon.png")):
+        return False
+
+    if checkContains(BUILD_PARAMETERS.pkgtype, "XPK"):
+        if not doCopy(
+                os.path.join(BUILD_ROOT_SRC, "manifest.json"),
+                os.path.join(BUILD_ROOT_SRC_PKG_APP, "manifest.json")):
+            return False
+    elif checkContains(BUILD_PARAMETERS.pkgtype, "WGT"):
+        if not doCopy(os.path.join(BUILD_ROOT_SRC, "config.xml"),
+                      os.path.join(BUILD_ROOT_SRC_PKG_APP, "config.xml")):
+            return False
+
+    hosted_app = False
+    if safelyGetValue(build_json, "hosted-app") == "true":
+        hosted_app = True
+    if not createIndexFile(
+            os.path.join(BUILD_ROOT_SRC_PKG_APP, "index.html"), hosted_app):
+        return False
+
+    if not hosted_app:
+        if "blacklist" not in build_json:
+            build_json.update({"blacklist": []})
+        build_json["blacklist"].extend(PKG_BLACK_LIST)
+        if not buildSRC(BUILD_ROOT_SRC, BUILD_ROOT_PKG_APP, build_json):
+            return False
+
+        if "subapp-list" in build_json:
+            for i_sub_app in build_json["subapp-list"].keys():
+                if not buildSubAPP(
+                        i_sub_app, build_json["subapp-list"][i_sub_app],
+                        BUILD_ROOT_PKG_APP):
+                    return False
+
+    if not packAPP(
+            build_json, BUILD_ROOT_SRC_PKG_APP, BUILD_ROOT_PKG, PKG_NAME):
+        return False
+
+    return True
+
+
+def buildPKG(build_json=None):
+    if "blacklist" not in build_json:
+        build_json.update({"blacklist": []})
+    build_json["blacklist"].extend(PKG_BLACK_LIST)
+    if not buildSRC(BUILD_ROOT_SRC, BUILD_ROOT_PKG, build_json):
+        return False
+
+    if "subapp-list" in build_json:
+        for i_sub_app in build_json["subapp-list"].keys():
+            if not buildSubAPP(
+                    i_sub_app, build_json["subapp-list"][i_sub_app],
+                    BUILD_ROOT_PKG):
+                return False
+
+    if "pkg-app" in build_json:
+        if not buildPKGAPP(build_json["pkg-app"]):
+            return False
+
+    return True
+
+
+def main():
+    global LOG
+    LOG = logging.getLogger("pack-tool")
+    LOG.setLevel(LOG_LEVEL)
+    stream_handler = logging.StreamHandler()
+    stream_handler.setLevel(LOG_LEVEL)
+    stream_formatter = ColorFormatter("[%(asctime)s] %(message)s")
+    stream_handler.setFormatter(stream_formatter)
+    LOG.addHandler(stream_handler)
+
+    try:
+        usage = "Usage: ./pack.py -t apk -m shared -a x86"
+        opts_parser = OptionParser(usage=usage)
+        opts_parser.add_option(
+            "-c",
+            "--cfg",
+            dest="pkgcfg",
+            help="specify the path of config json file")
+        opts_parser.add_option(
+            "-t",
+            "--type",
+            dest="pkgtype",
+            help="specify the pkg type, e.g. apk, xpk, wgt ...")
+        opts_parser.add_option(
+            "-m",
+            "--mode",
+            dest="pkgmode",
+            help="specify the apk mode, e.g. shared, embedded")
+        opts_parser.add_option(
+            "-a",
+            "--arch",
+            dest="pkgarch",
+            help="specify the apk arch, e.g. x86, arm")
+        opts_parser.add_option(
+            "-d",
+            "--dest",
+            dest="destdir",
+            help="specify the installation folder for packed package")
+        opts_parser.add_option(
+            "-s",
+            "--src",
+            dest="srcdir",
+            help="specify the path of pkg resource for packing")
+        opts_parser.add_option(
+            "--tools",
+            dest="pkgpacktools",
+            help="specify the parent folder of pack tools")
+        opts_parser.add_option(
+            "--notclean",
+            dest="bnotclean",
+            action="store_true",
+            help="disable the build root clean after the packing")
+        opts_parser.add_option(
+            "--sign",
+            dest="signature",
+            action="store_true",
+            help="signature operation will be done when packing wgt")
+        opts_parser.add_option(
+            "-v",
+            "--version",
+            dest="bversion",
+            action="store_true",
+            help="show this tool's version")
+        opts_parser.add_option(
+            "--pkg-version",
+            dest="pkgversion",
+            help="specify the pkg version, e.g. 0.0.0.1")
+
+        if len(sys.argv) == 1:
+            sys.argv.append("-h")
+
+        global BUILD_PARAMETERS
+        (BUILD_PARAMETERS, args) = opts_parser.parse_args()
+    except Exception as e:
+        LOG.error("Got wrong options: %s, exit ..." % e)
+        sys.exit(1)
+
+    if BUILD_PARAMETERS.bversion:
+        print "Version: %s" % TOOL_VERSION
+        sys.exit(0)
+
+    if not BUILD_PARAMETERS.srcdir:
+        BUILD_PARAMETERS.srcdir = os.getcwd()
+    BUILD_PARAMETERS.srcdir = os.path.expanduser(BUILD_PARAMETERS.srcdir)
+
+    if not os.path.exists(
+            os.path.join(BUILD_PARAMETERS.srcdir, "..", "..", VERSION_FILE)):
+        if not os.path.exists(
+                os.path.join(BUILD_PARAMETERS.srcdir, "..", VERSION_FILE)):
+            if not os.path.exists(
+                    os.path.join(BUILD_PARAMETERS.srcdir, VERSION_FILE)):
+                LOG.info(
+                    "Not found pkg version file, try to use option --pkg-version")
+                pkg_version_file_path = None
+            else:
+                pkg_version_file_path = os.path.join(
+                    BUILD_PARAMETERS.srcdir, VERSION_FILE)
+        else:
+            pkg_version_file_path = os.path.join(
+                BUILD_PARAMETERS.srcdir, "..", VERSION_FILE)
+    else:
+        pkg_version_file_path = os.path.join(
+            BUILD_PARAMETERS.srcdir, "..", "..", VERSION_FILE)
+
+    try:
+        pkg_main_version = 0
+        pkg_release_version = 0
+        if BUILD_PARAMETERS.pkgversion:
+            LOG.info("Using %s as pkg version " % BUILD_PARAMETERS.pkgversion)
+            pkg_main_version = BUILD_PARAMETERS.pkgversion
+        else:
+            if pkg_version_file_path is not None:
+                LOG.info("Using pkg version file: %s" % pkg_version_file_path)
+                with open(pkg_version_file_path, "rt") as pkg_version_file:
+                    pkg_version_raw = pkg_version_file.read()
+                    pkg_version_file.close()
+                    pkg_version_json = json.loads(pkg_version_raw)
+                    pkg_main_version = pkg_version_json["main-version"]
+                    pkg_release_version = pkg_version_json["release-version"]
+    except Exception as e:
+        LOG.error("Fail to read pkg version file: %s, exit ..." % e)
+        sys.exit(1)
+
+    if not BUILD_PARAMETERS.pkgtype:
+        LOG.error("No pkg type provided, exit ...")
+        sys.exit(1)
+    elif not BUILD_PARAMETERS.pkgtype in PKG_TYPES:
+        LOG.error("Wrong pkg type, only support: %s, exit ..." %
+                  PKG_TYPES)
+        sys.exit(1)
+
+    if BUILD_PARAMETERS.pkgtype == "apk" or \
+       BUILD_PARAMETERS.pkgtype == "apk-aio":
+        if not BUILD_PARAMETERS.pkgmode:
+            LOG.error("No pkg mode option provided, exit ...")
+            sys.exit(1)
+        elif not BUILD_PARAMETERS.pkgmode in PKG_MODES:
+            LOG.error(
+                "Wrong pkg mode option provided, only support:%s, exit ..." %
+                PKG_MODES)
+            sys.exit(1)
+
+        if not BUILD_PARAMETERS.pkgarch:
+            LOG.error("No pkg arch option provided, exit ...")
+            sys.exit(1)
+        elif not BUILD_PARAMETERS.pkgarch in PKG_ARCHS:
+            LOG.error(
+                "Wrong pkg arch option provided, only support:%s, exit ..." %
+                PKG_ARCHS)
+            sys.exit(1)
+
+    if BUILD_PARAMETERS.pkgtype == "apk-aio" or \
+       BUILD_PARAMETERS.pkgtype == "cordova-aio":
+        if not BUILD_PARAMETERS.destdir or not os.path.exists(
+                BUILD_PARAMETERS.destdir):
+            LOG.error("No all-in-one installation dest dir found, exit ...")
+            sys.exit(1)
+
+    elif not BUILD_PARAMETERS.destdir:
+        BUILD_PARAMETERS.destdir = BUILD_PARAMETERS.srcdir
+    BUILD_PARAMETERS.destdir = os.path.expanduser(BUILD_PARAMETERS.destdir)
+
+    if not BUILD_PARAMETERS.pkgpacktools:
+        BUILD_PARAMETERS.pkgpacktools = os.path.join(
+            BUILD_PARAMETERS.srcdir, "..", "..", "tools")
+    BUILD_PARAMETERS.pkgpacktools = os.path.expanduser(
+        BUILD_PARAMETERS.pkgpacktools)
+
+    config_json = None
+    if BUILD_PARAMETERS.pkgcfg:
+        config_json_file_path = BUILD_PARAMETERS.pkgcfg
+    else:
+        config_json_file_path = os.path.join(
+            BUILD_PARAMETERS.srcdir, "suite.json")
+    try:
+        LOG.info("Using config json file: %s" % config_json_file_path)
+        with open(config_json_file_path, "rt") as config_json_file:
+            config_raw = config_json_file.read()
+            config_json_file.close()
+            config_json = json.loads(config_raw)
+    except Exception as e:
+        LOG.error("Fail to read config json file: %s, exit ..." % e)
+        sys.exit(1)
+
+    global PKG_NAME
+    PKG_NAME = safelyGetValue(config_json, "pkg-name")
+    if not PKG_NAME:
+        PKG_NAME = os.path.basename(BUILD_PARAMETERS.srcdir)
+        LOG.warning(
+            "Fail to read pkg name from json, "
+            "using src dir name as pkg name ...")
+
+    LOG.info("================= %s (%s-%s) ================" %
+             (PKG_NAME, pkg_main_version, pkg_release_version))
+
+    if not safelyGetValue(config_json, "pkg-list"):
+        LOG.error("Fail to read pkg-list, exit ...")
+        sys.exit(1)
+
+    pkg_json = None
+    for i_pkg in config_json["pkg-list"].keys():
+        i_pkg_list = i_pkg.replace(" ", "").split(",")
+        if BUILD_PARAMETERS.pkgtype in i_pkg_list:
+            pkg_json = config_json["pkg-list"][i_pkg]
+
+    if not pkg_json:
+        LOG.error("Fail to read pkg json, exit ...")
+        sys.exit(1)
+
+    if not prepareBuildRoot():
+        exitHandler(1)
+
+    if "pkg-blacklist" in config_json:
+        PKG_BLACK_LIST.extend(config_json["pkg-blacklist"])
+
+    if not buildPKG(pkg_json):
+        exitHandler(1)
+
+    LOG.info("+Building package ...")
+    if BUILD_PARAMETERS.pkgtype == "apk-aio" or \
+       BUILD_PARAMETERS.pkgtype == "cordova-aio":
+        pkg_file_list = os.listdir(os.path.join(BUILD_ROOT, "pkg"))
+        for i_file in pkg_file_list:
+            if not doCopy(
+                    os.path.join(BUILD_ROOT, "pkg", i_file),
+                    os.path.join(BUILD_PARAMETERS.destdir, i_file)):
+                exitHandler(1)
+    else:
+        pkg_file = os.path.join(
+            BUILD_PARAMETERS.destdir,
+            "%s-%s.%s.zip" %
+            (PKG_NAME,
+             pkg_main_version,
+             pkg_release_version))
+             
+
+        if not zipDir(os.path.join(BUILD_ROOT, "pkg"), pkg_file):
+            exitHandler(1)
+
+if __name__ == "__main__":
+    main()
+    exitHandler(0)
diff --git a/common/tct-geoallow-w3c-tests/resources/COPYING b/common/tct-geoallow-w3c-tests/resources/COPYING
new file mode 100755 (executable)
index 0000000..35ac8be
--- /dev/null
@@ -0,0 +1,12 @@
+The testharness files come from
+https://github.com/w3c/testharness.js (commit 2486f01bf4c58de1c1b7cb39322af7b55c6c700b)
+without any modification.
+
+These tests are copyright by W3C and/or the author listed in the test
+file. The tests are dual-licensed under the W3C Test Suite License:
+http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
+and the BSD 3-clause License:
+http://www.w3.org/Consortium/Legal/2008/03-bsd-license
+under W3C's test suite licensing policy:
+http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright
+
diff --git a/common/tct-geoallow-w3c-tests/resources/testharness.css b/common/tct-geoallow-w3c-tests/resources/testharness.css
new file mode 100755 (executable)
index 0000000..3967004
--- /dev/null
@@ -0,0 +1,107 @@
+html {
+    font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;
+}
+
+#log .warning,
+#log .warning a {
+  color: black;
+  background: yellow;
+}
+
+#log .error,
+#log .error a {
+  color: white;
+  background: red;
+}
+
+#log pre {
+  border: 1px solid black;
+  padding: 1em;
+}
+
+section#summary {
+    margin-bottom:1em;
+}
+
+table#results {
+    border-collapse:collapse;
+    table-layout:fixed;
+    width:100%;
+}
+
+table#results th:first-child,
+table#results td:first-child {
+    width:4em;
+}
+
+table#results th:last-child,
+table#results td:last-child {
+    width:50%;
+}
+
+table#results.assertions th:last-child,
+table#results.assertions td:last-child {
+    width:35%;
+}
+
+table#results th {
+    padding:0;
+    padding-bottom:0.5em;
+    border-bottom:medium solid black;
+}
+
+table#results td {
+    padding:1em;
+    padding-bottom:0.5em;
+    border-bottom:thin solid black;
+}
+
+tr.pass > td:first-child {
+    color:green;
+}
+
+tr.fail > td:first-child {
+    color:red;
+}
+
+tr.timeout > td:first-child {
+    color:red;
+}
+
+tr.notrun > td:first-child {
+    color:blue;
+}
+
+.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child {
+    font-variant:small-caps;
+}
+
+table#results span {
+    display:block;
+}
+
+table#results span.expected {
+    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;
+    white-space:pre;
+}
+
+table#results span.actual {
+    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;
+    white-space:pre;
+}
+
+span.ok {
+    color:green;
+}
+
+tr.error {
+    color:red;
+}
+
+span.timeout {
+    color:red;
+}
+
+span.ok, span.timeout, span.error {
+    font-variant:small-caps;
+}
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/resources/testharness.js b/common/tct-geoallow-w3c-tests/resources/testharness.js
new file mode 100755 (executable)
index 0000000..1c213b5
--- /dev/null
@@ -0,0 +1,2353 @@
+/*global self*/
+/*jshint latedef: nofunc*/
+/*
+Distributed under both the W3C Test Suite License [1] and the W3C
+3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
+policies and contribution forms [3].
+
+[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
+[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
+[3] http://www.w3.org/2004/10/27-testcases
+*/
+
+/* Documentation is in docs/api.md */
+
+(function ()
+{
+    var debug = false;
+    // default timeout is 10 seconds, test can override if needed
+    var settings = {
+        output:true,
+        harness_timeout:{
+            "normal":100000,
+            "long":60000
+        },
+        test_timeout:null
+    };
+
+    var xhtml_ns = "http://www.w3.org/1999/xhtml";
+
+    /*
+     * TestEnvironment is an abstraction for the environment in which the test
+     * harness is used. Each implementation of a test environment has to provide
+     * the following interface:
+     *
+     * interface TestEnvironment {
+     *   // Invoked after the global 'tests' object has been created and it's
+     *   // safe to call add_*_callback() to register event handlers.
+     *   void on_tests_ready();
+     *
+     *   // Invoked after setup() has been called to notify the test environment
+     *   // of changes to the test harness properties.
+     *   void on_new_harness_properties(object properties);
+     *
+     *   // Should return a new unique default test name.
+     *   DOMString next_default_test_name();
+     *
+     *   // Should return the test harness timeout duration in milliseconds.
+     *   float test_timeout();
+     *
+     *   // Should return the global scope object.
+     *   object global_scope();
+     * };
+     */
+
+    /*
+     * A test environment with a DOM. The global object is 'window'. By default
+     * test results are displayed in a table. Any parent windows receive
+     * callbacks or messages via postMessage() when test events occur. See
+     * apisample11.html and apisample12.html.
+     */
+    function WindowTestEnvironment() {
+        this.name_counter = 0;
+        this.window_cache = null;
+        this.output_handler = null;
+        this.all_loaded = false;
+        var this_obj = this;
+        on_event(window, 'load', function() {
+            this_obj.all_loaded = true;
+        });
+    }
+
+    WindowTestEnvironment.prototype._dispatch = function(selector, callback_args, message_arg) {
+        this._forEach_windows(
+                function(w, is_same_origin) {
+                    if (is_same_origin && selector in w) {
+                        try {
+                            w[selector].apply(undefined, callback_args);
+                        } catch (e) {
+                            if (debug) {
+                                throw e;
+                            }
+                        }
+                    }
+                    if (supports_post_message(w) && w !== self) {
+                        w.postMessage(message_arg, "*");
+                    }
+                });
+    };
+
+    WindowTestEnvironment.prototype._forEach_windows = function(callback) {
+        // Iterate of the the windows [self ... top, opener]. The callback is passed
+        // two objects, the first one is the windows object itself, the second one
+        // is a boolean indicating whether or not its on the same origin as the
+        // current window.
+        var cache = this.window_cache;
+        if (!cache) {
+            cache = [[self, true]];
+            var w = self;
+            var i = 0;
+            var so;
+            var origins = location.ancestorOrigins;
+            while (w != w.parent) {
+                w = w.parent;
+                // In WebKit, calls to parent windows' properties that aren't on the same
+                // origin cause an error message to be displayed in the error console but
+                // don't throw an exception. This is a deviation from the current HTML5
+                // spec. See: https://bugs.webkit.org/show_bug.cgi?id=43504
+                // The problem with WebKit's behavior is that it pollutes the error console
+                // with error messages that can't be caught.
+                //
+                // This issue can be mitigated by relying on the (for now) proprietary
+                // `location.ancestorOrigins` property which returns an ordered list of
+                // the origins of enclosing windows. See:
+                // http://trac.webkit.org/changeset/113945.
+                if (origins) {
+                    so = (location.origin == origins[i]);
+                } else {
+                    so = is_same_origin(w);
+                }
+                cache.push([w, so]);
+                i++;
+            }
+            w = window.opener;
+            if (w) {
+                // window.opener isn't included in the `location.ancestorOrigins` prop.
+                // We'll just have to deal with a simple check and an error msg on WebKit
+                // browsers in this case.
+                cache.push([w, is_same_origin(w)]);
+            }
+            this.window_cache = cache;
+        }
+
+        forEach(cache,
+                function(a) {
+                    callback.apply(null, a);
+                });
+    };
+
+    WindowTestEnvironment.prototype.on_tests_ready = function() {
+        var output = new Output();
+        this.output_handler = output;
+
+        var this_obj = this;
+        add_start_callback(function (properties) {
+            this_obj.output_handler.init(properties);
+            this_obj._dispatch("start_callback", [properties],
+                           { type: "start", properties: properties });
+        });
+        add_test_state_callback(function(test) {
+            this_obj.output_handler.show_status();
+            this_obj._dispatch("test_state_callback", [test],
+                               { type: "test_state", test: test.structured_clone() });
+        });
+        add_result_callback(function (test) {
+            this_obj.output_handler.show_status();
+            this_obj._dispatch("result_callback", [test],
+                               { type: "result", test: test.structured_clone() });
+        });
+        add_completion_callback(function (tests, harness_status) {
+            this_obj.output_handler.show_results(tests, harness_status);
+            var cloned_tests = map(tests, function(test) { return test.structured_clone(); });
+            this_obj._dispatch("completion_callback", [tests, harness_status],
+                               { type: "complete", tests: cloned_tests,
+                                 status: harness_status.structured_clone() });
+        });
+    };
+
+    WindowTestEnvironment.prototype.next_default_test_name = function() {
+        //Don't use document.title to work around an Opera bug in XHTML documents
+        var title = document.getElementsByTagName("title")[0];
+        var prefix = (title && title.firstChild && title.firstChild.data) || "Untitled";
+        var suffix = this.name_counter > 0 ? " " + this.name_counter : "";
+        this.name_counter++;
+        return prefix + suffix;
+    };
+
+    WindowTestEnvironment.prototype.on_new_harness_properties = function(properties) {
+        this.output_handler.setup(properties);
+    };
+
+    WindowTestEnvironment.prototype.add_on_loaded_callback = function(callback) {
+        on_event(window, 'load', callback);
+    };
+
+    WindowTestEnvironment.prototype.test_timeout = function() {
+        var metas = document.getElementsByTagName("meta");
+        for (var i = 0; i < metas.length; i++) {
+            if (metas[i].name == "timeout") {
+                if (metas[i].content == "long") {
+                    return settings.harness_timeout.long;
+                }
+                break;
+            }
+        }
+        return settings.harness_timeout.normal;
+    };
+
+    WindowTestEnvironment.prototype.global_scope = function() {
+        return window;
+    };
+
+    /*
+     * Base TestEnvironment implementation for a generic web worker.
+     *
+     * Workers accumulate test results. One or more clients can connect and
+     * retrieve results from a worker at any time.
+     *
+     * WorkerTestEnvironment supports communicating with a client via a
+     * MessagePort.  The mechanism for determining the appropriate MessagePort
+     * for communicating with a client depends on the type of worker and is
+     * implemented by the various specializations of WorkerTestEnvironment
+     * below.
+     *
+     * A client document using testharness can use fetch_tests_from_worker() to
+     * retrieve results from a worker. See apisample16.html.
+     */
+    function WorkerTestEnvironment() {
+        this.name_counter = 0;
+        this.all_loaded = true;
+        this.message_list = [];
+        this.message_ports = [];
+    }
+
+    WorkerTestEnvironment.prototype._dispatch = function(message) {
+        this.message_list.push(message);
+        for (var i = 0; i < this.message_ports.length; ++i)
+        {
+            this.message_ports[i].postMessage(message);
+        }
+    };
+
+    // The only requirement is that port has a postMessage() method. It doesn't
+    // have to be an instance of a MessagePort, and often isn't.
+    WorkerTestEnvironment.prototype._add_message_port = function(port) {
+        this.message_ports.push(port);
+        for (var i = 0; i < this.message_list.length; ++i)
+        {
+            port.postMessage(this.message_list[i]);
+        }
+    };
+
+    WorkerTestEnvironment.prototype.next_default_test_name = function() {
+        var suffix = this.name_counter > 0 ? " " + this.name_counter : "";
+        this.name_counter++;
+        return "Untitled" + suffix;
+    };
+
+    WorkerTestEnvironment.prototype.on_new_harness_properties = function() {};
+
+    WorkerTestEnvironment.prototype.on_tests_ready = function() {
+        var this_obj = this;
+        add_start_callback(
+                function(properties) {
+                    this_obj._dispatch({
+                        type: "start",
+                        properties: properties,
+                    });
+                });
+        add_test_state_callback(
+                function(test) {
+                    this_obj._dispatch({
+                        type: "test_state",
+                        test: test.structured_clone()
+                    });
+                });
+        add_result_callback(
+                function(test) {
+                    this_obj._dispatch({
+                        type: "result",
+                        test: test.structured_clone()
+                    });
+                });
+        add_completion_callback(
+                function(tests, harness_status) {
+                    this_obj._dispatch({
+                        type: "complete",
+                        tests: map(tests,
+                            function(test) {
+                                return test.structured_clone();
+                            }),
+                        status: harness_status.structured_clone()
+                    });
+                });
+    };
+
+    WorkerTestEnvironment.prototype.add_on_loaded_callback = function() {};
+
+    WorkerTestEnvironment.prototype.test_timeout = function() {
+        // Tests running in a worker don't have a default timeout. I.e. all
+        // worker tests behave as if settings.explicit_timeout is true.
+        return null;
+    };
+
+    WorkerTestEnvironment.prototype.global_scope = function() {
+        return self;
+    };
+
+    /*
+     * Dedicated web workers.
+     * https://html.spec.whatwg.org/multipage/workers.html#dedicatedworkerglobalscope
+     *
+     * This class is used as the test_environment when testharness is running
+     * inside a dedicated worker.
+     */
+    function DedicatedWorkerTestEnvironment() {
+        WorkerTestEnvironment.call(this);
+        // self is an instance of DedicatedWorkerGlobalScope which exposes
+        // a postMessage() method for communicating via the message channel
+        // established when the worker is created.
+        this._add_message_port(self);
+    }
+    DedicatedWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
+
+    DedicatedWorkerTestEnvironment.prototype.on_tests_ready = function() {
+        WorkerTestEnvironment.prototype.on_tests_ready.call(this);
+        // In the absence of an onload notification, we a require dedicated
+        // workers to explicitly signal when the tests are done.
+        tests.wait_for_finish = true;
+    };
+
+    /*
+     * Shared web workers.
+     * https://html.spec.whatwg.org/multipage/workers.html#sharedworkerglobalscope
+     *
+     * This class is used as the test_environment when testharness is running
+     * inside a shared web worker.
+     */
+    function SharedWorkerTestEnvironment() {
+        WorkerTestEnvironment.call(this);
+        var this_obj = this;
+        // Shared workers receive message ports via the 'onconnect' event for
+        // each connection.
+        self.addEventListener("connect",
+                function(message_event) {
+                    this_obj._add_message_port(message_event.source);
+                });
+    }
+    SharedWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
+
+    SharedWorkerTestEnvironment.prototype.on_tests_ready = function() {
+        WorkerTestEnvironment.prototype.on_tests_ready.call(this);
+        // In the absence of an onload notification, we a require shared
+        // workers to explicitly signal when the tests are done.
+        tests.wait_for_finish = true;
+    };
+
+    /*
+     * Service workers.
+     * http://www.w3.org/TR/service-workers/
+     *
+     * This class is used as the test_environment when testharness is running
+     * inside a service worker.
+     */
+    function ServiceWorkerTestEnvironment() {
+        WorkerTestEnvironment.call(this);
+        this.all_loaded = false;
+        this.on_loaded_callback = null;
+        var this_obj = this;
+        self.addEventListener("message",
+                function(event) {
+                    if (event.data.type && event.data.type === "connect") {
+                        this_obj._add_message_port(event.ports[0]);
+                        event.ports[0].start();
+                    }
+                });
+
+        // The oninstall event is received after the service worker script and
+        // all imported scripts have been fetched and executed. It's the
+        // equivalent of an onload event for a document. All tests should have
+        // been added by the time this event is received, thus it's not
+        // necessary to wait until the onactivate event.
+        on_event(self, "install",
+                function(event) {
+                    this_obj.all_loaded = true;
+                    if (this_obj.on_loaded_callback) {
+                        this_obj.on_loaded_callback();
+                    }
+                });
+    }
+    ServiceWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
+
+    ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback = function(callback) {
+        if (this.all_loaded) {
+            callback();
+        } else {
+            this.on_loaded_callback = callback;
+        }
+    };
+
+    function create_test_environment() {
+        if ('document' in self) {
+            return new WindowTestEnvironment();
+        }
+        if ('DedicatedWorkerGlobalScope' in self &&
+            self instanceof DedicatedWorkerGlobalScope) {
+            return new DedicatedWorkerTestEnvironment();
+        }
+        if ('SharedWorkerGlobalScope' in self &&
+            self instanceof SharedWorkerGlobalScope) {
+            return new SharedWorkerTestEnvironment();
+        }
+        if ('ServiceWorkerGlobalScope' in self &&
+            self instanceof ServiceWorkerGlobalScope) {
+            return new ServiceWorkerTestEnvironment();
+        }
+        throw new Error("Unsupported test environment");
+    }
+
+    var test_environment = create_test_environment();
+
+    function is_shared_worker(worker) {
+        return 'SharedWorker' in self && worker instanceof SharedWorker;
+    }
+
+    function is_service_worker(worker) {
+        return 'ServiceWorker' in self && worker instanceof ServiceWorker;
+    }
+
+    /*
+     * API functions
+     */
+
+    function test(func, name, properties)
+    {
+        var test_name = name ? name : test_environment.next_default_test_name();
+        properties = properties ? properties : {};
+        var test_obj = new Test(test_name, properties);
+        test_obj.step(func, test_obj, test_obj);
+        if (test_obj.phase === test_obj.phases.STARTED) {
+            test_obj.done();
+        }
+    }
+
+    function async_test(func, name, properties)
+    {
+        if (typeof func !== "function") {
+            properties = name;
+            name = func;
+            func = null;
+        }
+        var test_name = name ? name : test_environment.next_default_test_name();
+        properties = properties ? properties : {};
+        var test_obj = new Test(test_name, properties);
+        if (func) {
+            test_obj.step(func, test_obj, test_obj);
+        }
+        return test_obj;
+    }
+
+    function promise_test(func, name, properties) {
+        var test = async_test(name, properties);
+        Promise.resolve(test.step(func, test, test))
+            .then(
+                function() {
+                    test.done();
+                })
+            .catch(test.step_func(
+                function(value) {
+                    if (value instanceof AssertionError) {
+                        throw value;
+                    }
+                    assert(false, "promise_test", null,
+                           "Unhandled rejection with value: ${value}", {value:value});
+                }));
+    }
+
+    function setup(func_or_properties, maybe_properties)
+    {
+        var func = null;
+        var properties = {};
+        if (arguments.length === 2) {
+            func = func_or_properties;
+            properties = maybe_properties;
+        } else if (func_or_properties instanceof Function) {
+            func = func_or_properties;
+        } else {
+            properties = func_or_properties;
+        }
+        tests.setup(func, properties);
+        test_environment.on_new_harness_properties(properties);
+    }
+
+    function done() {
+        if (tests.tests.length === 0) {
+            tests.set_file_is_test();
+        }
+        if (tests.file_is_test) {
+            tests.tests[0].done();
+        }
+        tests.end_wait();
+    }
+
+    function generate_tests(func, args, properties) {
+        forEach(args, function(x, i)
+                {
+                    var name = x[0];
+                    test(function()
+                         {
+                             func.apply(this, x.slice(1));
+                         },
+                         name,
+                         Array.isArray(properties) ? properties[i] : properties);
+                });
+    }
+
+    function on_event(object, event, callback)
+    {
+        object.addEventListener(event, callback, false);
+    }
+
+    expose(test, 'test');
+    expose(async_test, 'async_test');
+    expose(promise_test, 'promise_test');
+    expose(generate_tests, 'generate_tests');
+    expose(setup, 'setup');
+    expose(done, 'done');
+    expose(on_event, 'on_event');
+
+    /*
+     * Return a string truncated to the given length, with ... added at the end
+     * if it was longer.
+     */
+    function truncate(s, len)
+    {
+        if (s.length > len) {
+            return s.substring(0, len - 3) + "...";
+        }
+        return s;
+    }
+
+    /*
+     * Return true if object is probably a Node object.
+     */
+    function is_node(object)
+    {
+        // I use duck-typing instead of instanceof, because
+        // instanceof doesn't work if the node is from another window (like an
+        // iframe's contentWindow):
+        // http://www.w3.org/Bugs/Public/show_bug.cgi?id=12295
+        if ("nodeType" in object &&
+            "nodeName" in object &&
+            "nodeValue" in object &&
+            "childNodes" in object) {
+            try {
+                object.nodeType;
+            } catch (e) {
+                // The object is probably Node.prototype or another prototype
+                // object that inherits from it, and not a Node instance.
+                return false;
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /*
+     * Convert a value to a nice, human-readable string
+     */
+    function format_value(val, seen)
+    {
+        if (!seen) {
+            seen = [];
+        }
+        if (typeof val === "object" && val !== null) {
+            if (seen.indexOf(val) >= 0) {
+                return "[...]";
+            }
+            seen.push(val);
+        }
+        if (Array.isArray(val)) {
+            return "[" + val.map(function(x) {return format_value(x, seen);}).join(", ") + "]";
+        }
+
+        switch (typeof val) {
+        case "string":
+            val = val.replace("\\", "\\\\");
+            for (var i = 0; i < 32; i++) {
+                var replace = "\\";
+                switch (i) {
+                case 0: replace += "0"; break;
+                case 1: replace += "x01"; break;
+                case 2: replace += "x02"; break;
+                case 3: replace += "x03"; break;
+                case 4: replace += "x04"; break;
+                case 5: replace += "x05"; break;
+                case 6: replace += "x06"; break;
+                case 7: replace += "x07"; break;
+                case 8: replace += "b"; break;
+                case 9: replace += "t"; break;
+                case 10: replace += "n"; break;
+                case 11: replace += "v"; break;
+                case 12: replace += "f"; break;
+                case 13: replace += "r"; break;
+                case 14: replace += "x0e"; break;
+                case 15: replace += "x0f"; break;
+                case 16: replace += "x10"; break;
+                case 17: replace += "x11"; break;
+                case 18: replace += "x12"; break;
+                case 19: replace += "x13"; break;
+                case 20: replace += "x14"; break;
+                case 21: replace += "x15"; break;
+                case 22: replace += "x16"; break;
+                case 23: replace += "x17"; break;
+                case 24: replace += "x18"; break;
+                case 25: replace += "x19"; break;
+                case 26: replace += "x1a"; break;
+                case 27: replace += "x1b"; break;
+                case 28: replace += "x1c"; break;
+                case 29: replace += "x1d"; break;
+                case 30: replace += "x1e"; break;
+                case 31: replace += "x1f"; break;
+                }
+                val = val.replace(RegExp(String.fromCharCode(i), "g"), replace);
+            }
+            return '"' + val.replace(/"/g, '\\"') + '"';
+        case "boolean":
+        case "undefined":
+            return String(val);
+        case "number":
+            // In JavaScript, -0 === 0 and String(-0) == "0", so we have to
+            // special-case.
+            if (val === -0 && 1/val === -Infinity) {
+                return "-0";
+            }
+            return String(val);
+        case "object":
+            if (val === null) {
+                return "null";
+            }
+
+            // Special-case Node objects, since those come up a lot in my tests.  I
+            // ignore namespaces.
+            if (is_node(val)) {
+                switch (val.nodeType) {
+                case Node.ELEMENT_NODE:
+                    var ret = "<" + val.localName;
+                    for (var i = 0; i < val.attributes.length; i++) {
+                        ret += " " + val.attributes[i].name + '="' + val.attributes[i].value + '"';
+                    }
+                    ret += ">" + val.innerHTML + "</" + val.localName + ">";
+                    return "Element node " + truncate(ret, 60);
+                case Node.TEXT_NODE:
+                    return 'Text node "' + truncate(val.data, 60) + '"';
+                case Node.PROCESSING_INSTRUCTION_NODE:
+                    return "ProcessingInstruction node with target " + format_value(truncate(val.target, 60)) + " and data " + format_value(truncate(val.data, 60));
+                case Node.COMMENT_NODE:
+                    return "Comment node <!--" + truncate(val.data, 60) + "-->";
+                case Node.DOCUMENT_NODE:
+                    return "Document node with " + val.childNodes.length + (val.childNodes.length == 1 ? " child" : " children");
+                case Node.DOCUMENT_TYPE_NODE:
+                    return "DocumentType node";
+                case Node.DOCUMENT_FRAGMENT_NODE:
+                    return "DocumentFragment node with " + val.childNodes.length + (val.childNodes.length == 1 ? " child" : " children");
+                default:
+                    return "Node object of unknown type";
+                }
+            }
+
+        /* falls through */
+        default:
+            return typeof val + ' "' + truncate(String(val), 60) + '"';
+        }
+    }
+    expose(format_value, "format_value");
+
+    /*
+     * Assertions
+     */
+
+    function assert_true(actual, description)
+    {
+        assert(actual === true, "assert_true", description,
+                                "expected true got ${actual}", {actual:actual});
+    }
+    expose(assert_true, "assert_true");
+
+    function assert_false(actual, description)
+    {
+        assert(actual === false, "assert_false", description,
+                                 "expected false got ${actual}", {actual:actual});
+    }
+    expose(assert_false, "assert_false");
+
+    function same_value(x, y) {
+        if (y !== y) {
+            //NaN case
+            return x !== x;
+        }
+        if (x === 0 && y === 0) {
+            //Distinguish +0 and -0
+            return 1/x === 1/y;
+        }
+        return x === y;
+    }
+
+    function assert_equals(actual, expected, description)
+    {
+         /*
+          * Test if two primitives are equal or two objects
+          * are the same object
+          */
+        if (typeof actual != typeof expected) {
+            assert(false, "assert_equals", description,
+                          "expected (" + typeof expected + ") ${expected} but got (" + typeof actual + ") ${actual}",
+                          {expected:expected, actual:actual});
+            return;
+        }
+        assert(same_value(actual, expected), "assert_equals", description,
+                                             "expected ${expected} but got ${actual}",
+                                             {expected:expected, actual:actual});
+    }
+    expose(assert_equals, "assert_equals");
+
+    function assert_not_equals(actual, expected, description)
+    {
+         /*
+          * Test if two primitives are unequal or two objects
+          * are different objects
+          */
+        assert(!same_value(actual, expected), "assert_not_equals", description,
+                                              "got disallowed value ${actual}",
+                                              {actual:actual});
+    }
+    expose(assert_not_equals, "assert_not_equals");
+
+    function assert_in_array(actual, expected, description)
+    {
+        assert(expected.indexOf(actual) != -1, "assert_in_array", description,
+                                               "value ${actual} not in array ${expected}",
+                                               {actual:actual, expected:expected});
+    }
+    expose(assert_in_array, "assert_in_array");
+
+    function assert_object_equals(actual, expected, description)
+    {
+         //This needs to be improved a great deal
+         function check_equal(actual, expected, stack)
+         {
+             stack.push(actual);
+
+             var p;
+             for (p in actual) {
+                 assert(expected.hasOwnProperty(p), "assert_object_equals", description,
+                                                    "unexpected property ${p}", {p:p});
+
+                 if (typeof actual[p] === "object" && actual[p] !== null) {
+                     if (stack.indexOf(actual[p]) === -1) {
+                         check_equal(actual[p], expected[p], stack);
+                     }
+                 } else {
+                     assert(same_value(actual[p], expected[p]), "assert_object_equals", description,
+                                                       "property ${p} expected ${expected} got ${actual}",
+                                                       {p:p, expected:expected, actual:actual});
+                 }
+             }
+             for (p in expected) {
+                 assert(actual.hasOwnProperty(p),
+                        "assert_object_equals", description,
+                        "expected property ${p} missing", {p:p});
+             }
+             stack.pop();
+         }
+         check_equal(actual, expected, []);
+    }
+    expose(assert_object_equals, "assert_object_equals");
+
+    function assert_array_equals(actual, expected, description)
+    {
+        assert(actual.length === expected.length,
+               "assert_array_equals", description,
+               "lengths differ, expected ${expected} got ${actual}",
+               {expected:expected.length, actual:actual.length});
+
+        for (var i = 0; i < actual.length; i++) {
+            assert(actual.hasOwnProperty(i) === expected.hasOwnProperty(i),
+                   "assert_array_equals", description,
+                   "property ${i}, property expected to be ${expected} but was ${actual}",
+                   {i:i, expected:expected.hasOwnProperty(i) ? "present" : "missing",
+                   actual:actual.hasOwnProperty(i) ? "present" : "missing"});
+            assert(same_value(expected[i], actual[i]),
+                   "assert_array_equals", description,
+                   "property ${i}, expected ${expected} but got ${actual}",
+                   {i:i, expected:expected[i], actual:actual[i]});
+        }
+    }
+    expose(assert_array_equals, "assert_array_equals");
+
+    function assert_approx_equals(actual, expected, epsilon, description)
+    {
+        /*
+         * Test if two primitive numbers are equal withing +/- epsilon
+         */
+        assert(typeof actual === "number",
+               "assert_approx_equals", description,
+               "expected a number but got a ${type_actual}",
+               {type_actual:typeof actual});
+
+        assert(Math.abs(actual - expected) <= epsilon,
+               "assert_approx_equals", description,
+               "expected ${expected} +/- ${epsilon} but got ${actual}",
+               {expected:expected, actual:actual, epsilon:epsilon});
+    }
+    expose(assert_approx_equals, "assert_approx_equals");
+
+    function assert_less_than(actual, expected, description)
+    {
+        /*
+         * Test if a primitive number is less than another
+         */
+        assert(typeof actual === "number",
+               "assert_less_than", description,
+               "expected a number but got a ${type_actual}",
+               {type_actual:typeof actual});
+
+        assert(actual < expected,
+               "assert_less_than", description,
+               "expected a number less than ${expected} but got ${actual}",
+               {expected:expected, actual:actual});
+    }
+    expose(assert_less_than, "assert_less_than");
+
+    function assert_greater_than(actual, expected, description)
+    {
+        /*
+         * Test if a primitive number is greater than another
+         */
+        assert(typeof actual === "number",
+               "assert_greater_than", description,
+               "expected a number but got a ${type_actual}",
+               {type_actual:typeof actual});
+
+        assert(actual > expected,
+               "assert_greater_than", description,
+               "expected a number greater than ${expected} but got ${actual}",
+               {expected:expected, actual:actual});
+    }
+    expose(assert_greater_than, "assert_greater_than");
+
+    function assert_less_than_equal(actual, expected, description)
+    {
+        /*
+         * Test if a primitive number is less than or equal to another
+         */
+        assert(typeof actual === "number",
+               "assert_less_than_equal", description,
+               "expected a number but got a ${type_actual}",
+               {type_actual:typeof actual});
+
+        assert(actual <= expected,
+               "assert_less_than", description,
+               "expected a number less than or equal to ${expected} but got ${actual}",
+               {expected:expected, actual:actual});
+    }
+    expose(assert_less_than_equal, "assert_less_than_equal");
+
+    function assert_greater_than_equal(actual, expected, description)
+    {
+        /*
+         * Test if a primitive number is greater than or equal to another
+         */
+        assert(typeof actual === "number",
+               "assert_greater_than_equal", description,
+               "expected a number but got a ${type_actual}",
+               {type_actual:typeof actual});
+
+        assert(actual >= expected,
+               "assert_greater_than_equal", description,
+               "expected a number greater than or equal to ${expected} but got ${actual}",
+               {expected:expected, actual:actual});
+    }
+    expose(assert_greater_than_equal, "assert_greater_than_equal");
+
+    function assert_regexp_match(actual, expected, description) {
+        /*
+         * Test if a string (actual) matches a regexp (expected)
+         */
+        assert(expected.test(actual),
+               "assert_regexp_match", description,
+               "expected ${expected} but got ${actual}",
+               {expected:expected, actual:actual});
+    }
+    expose(assert_regexp_match, "assert_regexp_match");
+
+    function assert_class_string(object, class_string, description) {
+        assert_equals({}.toString.call(object), "[object " + class_string + "]",
+                      description);
+    }
+    expose(assert_class_string, "assert_class_string");
+
+
+    function _assert_own_property(name) {
+        return function(object, property_name, description)
+        {
+            assert(property_name in object,
+                   name, description,
+                   "expected property ${p} missing", {p:property_name});
+        };
+    }
+    expose(_assert_own_property("assert_exists"), "assert_exists");
+    expose(_assert_own_property("assert_own_property"), "assert_own_property");
+
+    function assert_not_exists(object, property_name, description)
+    {
+        assert(!object.hasOwnProperty(property_name),
+               "assert_not_exists", description,
+               "unexpected property ${p} found", {p:property_name});
+    }
+    expose(assert_not_exists, "assert_not_exists");
+
+    function _assert_inherits(name) {
+        return function (object, property_name, description)
+        {
+            assert(typeof object === "object",
+                   name, description,
+                   "provided value is not an object");
+
+            assert("hasOwnProperty" in object,
+                   name, description,
+                   "provided value is an object but has no hasOwnProperty method");
+
+            assert(!object.hasOwnProperty(property_name),
+                   name, description,
+                   "property ${p} found on object expected in prototype chain",
+                   {p:property_name});
+
+            assert(property_name in object,
+                   name, description,
+                   "property ${p} not found in prototype chain",
+                   {p:property_name});
+        };
+    }
+    expose(_assert_inherits("assert_inherits"), "assert_inherits");
+    expose(_assert_inherits("assert_idl_attribute"), "assert_idl_attribute");
+
+    function assert_readonly(object, property_name, description)
+    {
+         var initial_value = object[property_name];
+         try {
+             //Note that this can have side effects in the case where
+             //the property has PutForwards
+             object[property_name] = initial_value + "a"; //XXX use some other value here?
+             assert(same_value(object[property_name], initial_value),
+                    "assert_readonly", description,
+                    "changing property ${p} succeeded",
+                    {p:property_name});
+         } finally {
+             object[property_name] = initial_value;
+         }
+    }
+    expose(assert_readonly, "assert_readonly");
+
+    function assert_throws(code, func, description)
+    {
+        try {
+            func.call(this);
+            assert(false, "assert_throws", description,
+                   "${func} did not throw", {func:func});
+        } catch (e) {
+            if (e instanceof AssertionError) {
+                throw e;
+            }
+            if (code === null) {
+                return;
+            }
+            if (typeof code === "object") {
+                assert(typeof e == "object" && "name" in e && e.name == code.name,
+                       "assert_throws", description,
+                       "${func} threw ${actual} (${actual_name}) expected ${expected} (${expected_name})",
+                                    {func:func, actual:e, actual_name:e.name,
+                                     expected:code,
+                                     expected_name:code.name});
+                return;
+            }
+
+            var code_name_map = {
+                INDEX_SIZE_ERR: 'IndexSizeError',
+                HIERARCHY_REQUEST_ERR: 'HierarchyRequestError',
+                WRONG_DOCUMENT_ERR: 'WrongDocumentError',
+                INVALID_CHARACTER_ERR: 'InvalidCharacterError',
+                NO_MODIFICATION_ALLOWED_ERR: 'NoModificationAllowedError',
+                NOT_FOUND_ERR: 'NotFoundError',
+                NOT_SUPPORTED_ERR: 'NotSupportedError',
+                INVALID_STATE_ERR: 'InvalidStateError',
+                SYNTAX_ERR: 'SyntaxError',
+                INVALID_MODIFICATION_ERR: 'InvalidModificationError',
+                NAMESPACE_ERR: 'NamespaceError',
+                INVALID_ACCESS_ERR: 'InvalidAccessError',
+                TYPE_MISMATCH_ERR: 'TypeMismatchError',
+                SECURITY_ERR: 'SecurityError',
+                NETWORK_ERR: 'NetworkError',
+                ABORT_ERR: 'AbortError',
+                URL_MISMATCH_ERR: 'URLMismatchError',
+                QUOTA_EXCEEDED_ERR: 'QuotaExceededError',
+                TIMEOUT_ERR: 'TimeoutError',
+                INVALID_NODE_TYPE_ERR: 'InvalidNodeTypeError',
+                DATA_CLONE_ERR: 'DataCloneError'
+            };
+
+            var name = code in code_name_map ? code_name_map[code] : code;
+
+            var name_code_map = {
+                IndexSizeError: 1,
+                HierarchyRequestError: 3,
+                WrongDocumentError: 4,
+                InvalidCharacterError: 5,
+                NoModificationAllowedError: 7,
+                NotFoundError: 8,
+                NotSupportedError: 9,
+                InvalidStateError: 11,
+                SyntaxError: 12,
+                InvalidModificationError: 13,
+                NamespaceError: 14,
+                InvalidAccessError: 15,
+                TypeMismatchError: 17,
+                SecurityError: 18,
+                NetworkError: 19,
+                AbortError: 20,
+                URLMismatchError: 21,
+                QuotaExceededError: 22,
+                TimeoutError: 23,
+                InvalidNodeTypeError: 24,
+                DataCloneError: 25,
+
+                UnknownError: 0,
+                ConstraintError: 0,
+                DataError: 0,
+                TransactionInactiveError: 0,
+                ReadOnlyError: 0,
+                VersionError: 0
+            };
+
+            if (!(name in name_code_map)) {
+                throw new AssertionError('Test bug: unrecognized DOMException code "' + code + '" passed to assert_throws()');
+            }
+
+            var required_props = { code: name_code_map[name] };
+
+            if (required_props.code === 0 ||
+               ("name" in e && e.name !== e.name.toUpperCase() && e.name !== "DOMException")) {
+                // New style exception: also test the name property.
+                required_props.name = name;
+            }
+
+            //We'd like to test that e instanceof the appropriate interface,
+            //but we can't, because we don't know what window it was created
+            //in.  It might be an instanceof the appropriate interface on some
+            //unknown other window.  TODO: Work around this somehow?
+
+            assert(typeof e == "object",
+                   "assert_throws", description,
+                   "${func} threw ${e} with type ${type}, not an object",
+                   {func:func, e:e, type:typeof e});
+
+            for (var prop in required_props) {
+                assert(typeof e == "object" && prop in e && e[prop] == required_props[prop],
+                       "assert_throws", description,
+                       "${func} threw ${e} that is not a DOMException " + code + ": property ${prop} is equal to ${actual}, expected ${expected}",
+                       {func:func, e:e, prop:prop, actual:e[prop], expected:required_props[prop]});
+            }
+        }
+    }
+    expose(assert_throws, "assert_throws");
+
+    function assert_unreached(description) {
+         assert(false, "assert_unreached", description,
+                "Reached unreachable code");
+    }
+    expose(assert_unreached, "assert_unreached");
+
+    function assert_any(assert_func, actual, expected_array)
+    {
+        var args = [].slice.call(arguments, 3);
+        var errors = [];
+        var passed = false;
+        forEach(expected_array,
+                function(expected)
+                {
+                    try {
+                        assert_func.apply(this, [actual, expected].concat(args));
+                        passed = true;
+                    } catch (e) {
+                        errors.push(e.message);
+                    }
+                });
+        if (!passed) {
+            throw new AssertionError(errors.join("\n\n"));
+        }
+    }
+    expose(assert_any, "assert_any");
+
+    function Test(name, properties)
+    {
+        if (tests.file_is_test && tests.tests.length) {
+            throw new Error("Tried to create a test with file_is_test");
+        }
+        this.name = name;
+
+        this.phase = this.phases.INITIAL;
+
+        this.status = this.NOTRUN;
+        this.timeout_id = null;
+        this.index = null;
+
+        this.properties = properties;
+        var timeout = properties.timeout ? properties.timeout : settings.test_timeout;
+        if (timeout !== null) {
+            this.timeout_length = timeout * tests.timeout_multiplier;
+        } else {
+            this.timeout_length = null;
+        }
+
+        this.message = null;
+
+        this.steps = [];
+
+        this.cleanup_callbacks = [];
+
+        tests.push(this);
+    }
+
+    Test.statuses = {
+        PASS:0,
+        FAIL:1,
+        TIMEOUT:2,
+        NOTRUN:3
+    };
+
+    Test.prototype = merge({}, Test.statuses);
+
+    Test.prototype.phases = {
+        INITIAL:0,
+        STARTED:1,
+        HAS_RESULT:2,
+        COMPLETE:3
+    };
+
+    Test.prototype.structured_clone = function()
+    {
+        if (!this._structured_clone) {
+            var msg = this.message;
+            msg = msg ? String(msg) : msg;
+            this._structured_clone = merge({
+                name:String(this.name),
+                properties:merge({}, this.properties),
+            }, Test.statuses);
+        }
+        this._structured_clone.status = this.status;
+        this._structured_clone.message = this.message;
+        this._structured_clone.index = this.index;
+        return this._structured_clone;
+    };
+
+    Test.prototype.step = function(func, this_obj)
+    {
+        if (this.phase > this.phases.STARTED) {
+            return;
+        }
+        this.phase = this.phases.STARTED;
+        //If we don't get a result before the harness times out that will be a test timout
+        this.set_status(this.TIMEOUT, "Test timed out");
+
+        tests.started = true;
+        tests.notify_test_state(this);
+
+        if (this.timeout_id === null) {
+            this.set_timeout();
+        }
+
+        this.steps.push(func);
+
+        if (arguments.length === 1) {
+            this_obj = this;
+        }
+
+        try {
+            return func.apply(this_obj, Array.prototype.slice.call(arguments, 2));
+        } catch (e) {
+            if (this.phase >= this.phases.HAS_RESULT) {
+                return;
+            }
+            var message = (typeof e === "object" && e !== null) ? e.message : e;
+            if (typeof e.stack != "undefined" && typeof e.message == "string") {
+                //Try to make it more informative for some exceptions, at least
+                //in Gecko and WebKit.  This results in a stack dump instead of
+                //just errors like "Cannot read property 'parentNode' of null"
+                //or "root is null".  Makes it a lot longer, of course.
+                message += "(stack: " + e.stack + ")";
+            }
+            this.set_status(this.FAIL, message);
+            this.phase = this.phases.HAS_RESULT;
+            this.done();
+        }
+    };
+
+    Test.prototype.step_func = function(func, this_obj)
+    {
+        var test_this = this;
+
+        if (arguments.length === 1) {
+            this_obj = test_this;
+        }
+
+        return function()
+        {
+            return test_this.step.apply(test_this, [func, this_obj].concat(
+                Array.prototype.slice.call(arguments)));
+        };
+    };
+
+    Test.prototype.step_func_done = function(func, this_obj)
+    {
+        var test_this = this;
+
+        if (arguments.length === 1) {
+            this_obj = test_this;
+        }
+
+        return function()
+        {
+            if (func) {
+                test_this.step.apply(test_this, [func, this_obj].concat(
+                    Array.prototype.slice.call(arguments)));
+            }
+            test_this.done();
+        };
+    };
+
+    Test.prototype.unreached_func = function(description)
+    {
+        return this.step_func(function() {
+            assert_unreached(description);
+        });
+    };
+
+    Test.prototype.add_cleanup = function(callback) {
+        this.cleanup_callbacks.push(callback);
+    };
+
+    Test.prototype.force_timeout = function() {
+        this.set_status(this.TIMEOUT);
+        this.phase = this.phases.HAS_RESULT;
+    };
+
+    Test.prototype.set_timeout = function()
+    {
+        if (this.timeout_length !== null) {
+            var this_obj = this;
+            this.timeout_id = setTimeout(function()
+                                         {
+                                             this_obj.timeout();
+                                         }, this.timeout_length);
+        }
+    };
+
+    Test.prototype.set_status = function(status, message)
+    {
+        this.status = status;
+        this.message = message;
+    };
+
+    Test.prototype.timeout = function()
+    {
+        this.timeout_id = null;
+        this.set_status(this.TIMEOUT, "Test timed out");
+        this.phase = this.phases.HAS_RESULT;
+        this.done();
+    };
+
+    Test.prototype.done = function()
+    {
+        if (this.phase == this.phases.COMPLETE) {
+            return;
+        }
+
+        if (this.phase <= this.phases.STARTED) {
+            this.set_status(this.PASS, null);
+        }
+
+        this.phase = this.phases.COMPLETE;
+
+        clearTimeout(this.timeout_id);
+        tests.result(this);
+        this.cleanup();
+    };
+
+    Test.prototype.cleanup = function() {
+        forEach(this.cleanup_callbacks,
+                function(cleanup_callback) {
+                    cleanup_callback();
+                });
+    };
+
+    /*
+     * A RemoteTest object mirrors a Test object on a remote worker. The
+     * associated RemoteWorker updates the RemoteTest object in response to
+     * received events. In turn, the RemoteTest object replicates these events
+     * on the local document. This allows listeners (test result reporting
+     * etc..) to transparently handle local and remote events.
+     */
+    function RemoteTest(clone) {
+        var this_obj = this;
+        Object.keys(clone).forEach(
+                function(key) {
+                    this_obj[key] = clone[key];
+                });
+        this.index = null;
+        this.phase = this.phases.INITIAL;
+        this.update_state_from(clone);
+        tests.push(this);
+    }
+
+    RemoteTest.prototype.structured_clone = function() {
+        var clone = {};
+        Object.keys(this).forEach(
+                function(key) {
+                    if (typeof(this[key]) === "object") {
+                        clone[key] = merge({}, this[key]);
+                    } else {
+                        clone[key] = this[key];
+                    }
+                });
+        clone.phases = merge({}, this.phases);
+        return clone;
+    };
+
+    RemoteTest.prototype.cleanup = function() {};
+    RemoteTest.prototype.phases = Test.prototype.phases;
+    RemoteTest.prototype.update_state_from = function(clone) {
+        this.status = clone.status;
+        this.message = clone.message;
+        if (this.phase === this.phases.INITIAL) {
+            this.phase = this.phases.STARTED;
+        }
+    };
+    RemoteTest.prototype.done = function() {
+        this.phase = this.phases.COMPLETE;
+    }
+
+    /*
+     * A RemoteWorker listens for test events from a worker. These events are
+     * then used to construct and maintain RemoteTest objects that mirror the
+     * tests running on the remote worker.
+     */
+    function RemoteWorker(worker) {
+        this.running = true;
+        this.tests = new Array();
+
+        var this_obj = this;
+        worker.onerror = function(error) { this_obj.worker_error(error); };
+
+        var message_port;
+
+        if (is_service_worker(worker)) {
+            // The ServiceWorker's implicit MessagePort is currently not
+            // reliably accessible from the ServiceWorkerGlobalScope due to
+            // Blink setting MessageEvent.source to null for messages sent via
+            // ServiceWorker.postMessage(). Until that's resolved, create an
+            // explicit MessageChannel and pass one end to the worker.
+            var message_channel = new MessageChannel();
+            message_port = message_channel.port1;
+            message_port.start();
+            worker.postMessage({type: "connect"}, [message_channel.port2]);
+        } else if (is_shared_worker(worker)) {
+            message_port = worker.port;
+        } else {
+            message_port = worker;
+        }
+
+        // Keeping a reference to the worker until worker_done() is seen
+        // prevents the Worker object and its MessageChannel from going away
+        // before all the messages are dispatched.
+        this.worker = worker;
+
+        message_port.onmessage =
+            function(message) {
+                if (this_obj.running && (message.data.type in this_obj.message_handlers)) {
+                    this_obj.message_handlers[message.data.type].call(this_obj, message.data);
+                }
+            };
+    }
+
+    RemoteWorker.prototype.worker_error = function(error) {
+        var message = error.message || String(error);
+        var filename = (error.filename ? " " + error.filename: "");
+        // FIXME: Display worker error states separately from main document
+        // error state.
+        this.worker_done({
+            status: {
+                status: tests.status.ERROR,
+                message: "Error in worker" + filename + ": " + message
+            }
+        });
+        error.preventDefault();
+    };
+
+    RemoteWorker.prototype.test_state = function(data) {
+        var remote_test = this.tests[data.test.index];
+        if (!remote_test) {
+            remote_test = new RemoteTest(data.test);
+            this.tests[data.test.index] = remote_test;
+        }
+        remote_test.update_state_from(data.test);
+        tests.notify_test_state(remote_test);
+    };
+
+    RemoteWorker.prototype.test_done = function(data) {
+        var remote_test = this.tests[data.test.index];
+        remote_test.update_state_from(data.test);
+        remote_test.done();
+        tests.result(remote_test);
+    };
+
+    RemoteWorker.prototype.worker_done = function(data) {
+        if (tests.status.status === null &&
+            data.status.status !== data.status.OK) {
+            tests.status.status = data.status.status;
+            tests.status.message = data.status.message;
+        }
+        this.running = false;
+        this.worker = null;
+        if (tests.all_done()) {
+            tests.complete();
+        }
+    };
+
+    RemoteWorker.prototype.message_handlers = {
+        test_state: RemoteWorker.prototype.test_state,
+        result: RemoteWorker.prototype.test_done,
+        complete: RemoteWorker.prototype.worker_done
+    };
+
+    /*
+     * Harness
+     */
+
+    function TestsStatus()
+    {
+        this.status = null;
+        this.message = null;
+    }
+
+    TestsStatus.statuses = {
+        OK:0,
+        ERROR:1,
+        TIMEOUT:2
+    };
+
+    TestsStatus.prototype = merge({}, TestsStatus.statuses);
+
+    TestsStatus.prototype.structured_clone = function()
+    {
+        if (!this._structured_clone) {
+            var msg = this.message;
+            msg = msg ? String(msg) : msg;
+            this._structured_clone = merge({
+                status:this.status,
+                message:msg
+            }, TestsStatus.statuses);
+        }
+        return this._structured_clone;
+    };
+
+    function Tests()
+    {
+        this.tests = [];
+        this.num_pending = 0;
+
+        this.phases = {
+            INITIAL:0,
+            SETUP:1,
+            HAVE_TESTS:2,
+            HAVE_RESULTS:3,
+            COMPLETE:4
+        };
+        this.phase = this.phases.INITIAL;
+
+        this.properties = {};
+
+        this.wait_for_finish = false;
+        this.processing_callbacks = false;
+
+        this.allow_uncaught_exception = false;
+
+        this.file_is_test = false;
+
+        this.timeout_multiplier = 1;
+        this.timeout_length = test_environment.test_timeout();
+        this.timeout_id = null;
+
+        this.start_callbacks = [];
+        this.test_state_callbacks = [];
+        this.test_done_callbacks = [];
+        this.all_done_callbacks = [];
+
+        this.pending_workers = [];
+
+        this.status = new TestsStatus();
+
+        var this_obj = this;
+
+        test_environment.add_on_loaded_callback(function() {
+            if (this_obj.all_done()) {
+                this_obj.complete();
+            }
+        });
+
+        this.set_timeout();
+    }
+
+    Tests.prototype.setup = function(func, properties)
+    {
+        if (this.phase >= this.phases.HAVE_RESULTS) {
+            return;
+        }
+
+        if (this.phase < this.phases.SETUP) {
+            this.phase = this.phases.SETUP;
+        }
+
+        this.properties = properties;
+
+        for (var p in properties) {
+            if (properties.hasOwnProperty(p)) {
+                var value = properties[p];
+                if (p == "allow_uncaught_exception") {
+                    this.allow_uncaught_exception = value;
+                } else if (p == "explicit_done" && value) {
+                    this.wait_for_finish = true;
+                } else if (p == "explicit_timeout" && value) {
+                    this.timeout_length = null;
+                    if (this.timeout_id)
+                    {
+                        clearTimeout(this.timeout_id);
+                    }
+                } else if (p == "timeout_multiplier") {
+                    this.timeout_multiplier = value;
+                }
+            }
+        }
+
+        if (func) {
+            try {
+                func();
+            } catch (e) {
+                this.status.status = this.status.ERROR;
+                this.status.message = String(e);
+            }
+        }
+        this.set_timeout();
+    };
+
+    Tests.prototype.set_file_is_test = function() {
+        if (this.tests.length > 0) {
+            throw new Error("Tried to set file as test after creating a test");
+        }
+        this.wait_for_finish = true;
+        this.file_is_test = true;
+        // Create the test, which will add it to the list of tests
+        async_test();
+    };
+
+    Tests.prototype.set_timeout = function() {
+        var this_obj = this;
+        clearTimeout(this.timeout_id);
+        if (this.timeout_length !== null) {
+            this.timeout_id = setTimeout(function() {
+                                             this_obj.timeout();
+                                         }, this.timeout_length);
+        }
+    };
+
+    Tests.prototype.timeout = function() {
+        if (this.status.status === null) {
+            this.status.status = this.status.TIMEOUT;
+        }
+        this.complete();
+    };
+
+    Tests.prototype.end_wait = function()
+    {
+        this.wait_for_finish = false;
+        if (this.all_done()) {
+            this.complete();
+        }
+    };
+
+    Tests.prototype.push = function(test)
+    {
+        if (this.phase < this.phases.HAVE_TESTS) {
+            this.start();
+        }
+        this.num_pending++;
+        test.index = this.tests.push(test);
+        this.notify_test_state(test);
+    };
+
+    Tests.prototype.notify_test_state = function(test) {
+        var this_obj = this;
+        forEach(this.test_state_callbacks,
+                function(callback) {
+                    callback(test, this_obj);
+                });
+    };
+
+    Tests.prototype.all_done = function() {
+        return (this.tests.length > 0 && test_environment.all_loaded &&
+                this.num_pending === 0 && !this.wait_for_finish &&
+                !this.processing_callbacks &&
+                !this.pending_workers.some(function(w) { return w.running; }));
+    };
+
+    Tests.prototype.start = function() {
+        this.phase = this.phases.HAVE_TESTS;
+        this.notify_start();
+    };
+
+    Tests.prototype.notify_start = function() {
+        var this_obj = this;
+        forEach (this.start_callbacks,
+                 function(callback)
+                 {
+                     callback(this_obj.properties);
+                 });
+    };
+
+    Tests.prototype.result = function(test)
+    {
+        if (this.phase > this.phases.HAVE_RESULTS) {
+            return;
+        }
+        this.phase = this.phases.HAVE_RESULTS;
+        this.num_pending--;
+        this.notify_result(test);
+    };
+
+    Tests.prototype.notify_result = function(test) {
+        var this_obj = this;
+        this.processing_callbacks = true;
+        forEach(this.test_done_callbacks,
+                function(callback)
+                {
+                    callback(test, this_obj);
+                });
+        this.processing_callbacks = false;
+        if (this_obj.all_done()) {
+            this_obj.complete();
+        }
+    };
+
+    Tests.prototype.complete = function() {
+        if (this.phase === this.phases.COMPLETE) {
+            return;
+        }
+        this.phase = this.phases.COMPLETE;
+        var this_obj = this;
+        this.tests.forEach(
+            function(x)
+            {
+                if (x.phase < x.phases.COMPLETE) {
+                    this_obj.notify_result(x);
+                    x.cleanup();
+                    x.phase = x.phases.COMPLETE;
+                }
+            }
+        );
+        this.notify_complete();
+    };
+
+    Tests.prototype.notify_complete = function() {
+        var this_obj = this;
+        if (this.status.status === null) {
+            this.status.status = this.status.OK;
+        }
+
+        forEach (this.all_done_callbacks,
+                 function(callback)
+                 {
+                     callback(this_obj.tests, this_obj.status);
+                 });
+    };
+
+    Tests.prototype.fetch_tests_from_worker = function(worker) {
+        if (this.phase >= this.phases.COMPLETE) {
+            return;
+        }
+
+        this.pending_workers.push(new RemoteWorker(worker));
+    };
+
+    function fetch_tests_from_worker(port) {
+        tests.fetch_tests_from_worker(port);
+    }
+    expose(fetch_tests_from_worker, 'fetch_tests_from_worker');
+
+    function timeout() {
+        if (tests.timeout_length === null) {
+            tests.timeout();
+        }
+    }
+    expose(timeout, 'timeout');
+
+    function add_start_callback(callback) {
+        tests.start_callbacks.push(callback);
+    }
+
+    function add_test_state_callback(callback) {
+        tests.test_state_callbacks.push(callback);
+    }
+
+    function add_result_callback(callback)
+    {
+        tests.test_done_callbacks.push(callback);
+    }
+
+    function add_completion_callback(callback)
+    {
+       tests.all_done_callbacks.push(callback);
+    }
+
+    expose(add_start_callback, 'add_start_callback');
+    expose(add_test_state_callback, 'add_test_state_callback');
+    expose(add_result_callback, 'add_result_callback');
+    expose(add_completion_callback, 'add_completion_callback');
+
+    /*
+     * Output listener
+    */
+
+    function Output() {
+        this.output_document = document;
+        this.output_node = null;
+        this.enabled = settings.output;
+        this.phase = this.INITIAL;
+    }
+
+    Output.prototype.INITIAL = 0;
+    Output.prototype.STARTED = 1;
+    Output.prototype.HAVE_RESULTS = 2;
+    Output.prototype.COMPLETE = 3;
+
+    Output.prototype.setup = function(properties) {
+        if (this.phase > this.INITIAL) {
+            return;
+        }
+
+        //If output is disabled in testharnessreport.js the test shouldn't be
+        //able to override that
+        this.enabled = this.enabled && (properties.hasOwnProperty("output") ?
+                                        properties.output : settings.output);
+    };
+
+    Output.prototype.init = function(properties) {
+        if (this.phase >= this.STARTED) {
+            return;
+        }
+        if (properties.output_document) {
+            this.output_document = properties.output_document;
+        } else {
+            this.output_document = document;
+        }
+        this.phase = this.STARTED;
+    };
+
+    Output.prototype.resolve_log = function() {
+        var output_document;
+        if (typeof this.output_document === "function") {
+            output_document = this.output_document.apply(undefined);
+        } else {
+            output_document = this.output_document;
+        }
+        if (!output_document) {
+            return;
+        }
+        var node = output_document.getElementById("log");
+        if (!node) {
+            if (!document.body || document.readyState == "loading") {
+                return;
+            }
+            node = output_document.createElement("div");
+            node.id = "log";
+            output_document.body.appendChild(node);
+        }
+        this.output_document = output_document;
+        this.output_node = node;
+    };
+
+    Output.prototype.show_status = function() {
+        if (this.phase < this.STARTED) {
+            this.init();
+        }
+        if (!this.enabled) {
+            return;
+        }
+        if (this.phase < this.HAVE_RESULTS) {
+            this.resolve_log();
+            this.phase = this.HAVE_RESULTS;
+        }
+        var done_count = tests.tests.length - tests.num_pending;
+        if (this.output_node) {
+            if (done_count < 100 ||
+                (done_count < 1000 && done_count % 100 === 0) ||
+                done_count % 1000 === 0) {
+                this.output_node.textContent = "Running, " +
+                    done_count + " complete, " +
+                    tests.num_pending + " remain";
+            }
+        }
+    };
+
+    Output.prototype.show_results = function (tests, harness_status) {
+        if (this.phase >= this.COMPLETE) {
+            return;
+        }
+        if (!this.enabled) {
+            return;
+        }
+        if (!this.output_node) {
+            this.resolve_log();
+        }
+        this.phase = this.COMPLETE;
+
+        var log = this.output_node;
+        if (!log) {
+            return;
+        }
+        var output_document = this.output_document;
+
+        while (log.lastChild) {
+            log.removeChild(log.lastChild);
+        }
+
+        var script_prefix = null;
+        var scripts = document.getElementsByTagName("script");
+        for (var i = 0; i < scripts.length; i++) {
+            var src;
+            if (scripts[i].src) {
+                src = scripts[i].src;
+            } else if (scripts[i].href) {
+                //SVG case
+                src = scripts[i].href.baseVal;
+            }
+
+            var matches = src && src.match(/^(.*\/|)testharness\.js$/);
+            if (matches) {
+                script_prefix = matches[1];
+                break;
+            }
+        }
+
+        if (script_prefix !== null) {
+            var stylesheet = output_document.createElementNS(xhtml_ns, "link");
+            stylesheet.setAttribute("rel", "stylesheet");
+            stylesheet.setAttribute("href", script_prefix + "testharness.css");
+            var heads = output_document.getElementsByTagName("head");
+            if (heads.length) {
+                heads[0].appendChild(stylesheet);
+            }
+        }
+
+        var status_text_harness = {};
+        status_text_harness[harness_status.OK] = "OK";
+        status_text_harness[harness_status.ERROR] = "Error";
+        status_text_harness[harness_status.TIMEOUT] = "Timeout";
+
+        var status_text = {};
+        status_text[Test.prototype.PASS] = "Pass";
+        status_text[Test.prototype.FAIL] = "Fail";
+        status_text[Test.prototype.TIMEOUT] = "Timeout";
+        status_text[Test.prototype.NOTRUN] = "Not Run";
+
+        var status_number = {};
+        forEach(tests,
+                function(test) {
+                    var status = status_text[test.status];
+                    if (status_number.hasOwnProperty(status)) {
+                        status_number[status] += 1;
+                    } else {
+                        status_number[status] = 1;
+                    }
+                });
+
+        function status_class(status)
+        {
+            return status.replace(/\s/g, '').toLowerCase();
+        }
+
+        var summary_template = ["section", {"id":"summary"},
+                                ["h2", {}, "Summary"],
+                                function()
+                                {
+
+                                    var status = status_text_harness[harness_status.status];
+                                    var rv = [["section", {},
+                                               ["p", {},
+                                                "Harness status: ",
+                                                ["span", {"class":status_class(status)},
+                                                 status
+                                                ],
+                                               ]
+                                              ]];
+
+                                    if (harness_status.status === harness_status.ERROR) {
+                                        rv[0].push(["pre", {}, harness_status.message]);
+                                    }
+                                    return rv;
+                                },
+                                ["p", {}, "Found ${num_tests} tests"],
+                                function() {
+                                    var rv = [["div", {}]];
+                                    var i = 0;
+                                    while (status_text.hasOwnProperty(i)) {
+                                        if (status_number.hasOwnProperty(status_text[i])) {
+                                            var status = status_text[i];
+                                            rv[0].push(["div", {"class":status_class(status)},
+                                                        ["label", {},
+                                                         ["input", {type:"checkbox", checked:"checked"}],
+                                                         status_number[status] + " " + status]]);
+                                        }
+                                        i++;
+                                    }
+                                    return rv;
+                                },
+                               ];
+
+        log.appendChild(render(summary_template, {num_tests:tests.length}, output_document));
+
+        forEach(output_document.querySelectorAll("section#summary label"),
+                function(element)
+                {
+                    on_event(element, "click",
+                             function(e)
+                             {
+                                 if (output_document.getElementById("results") === null) {
+                                     e.preventDefault();
+                                     return;
+                                 }
+                                 var result_class = element.parentNode.getAttribute("class");
+                                 var style_element = output_document.querySelector("style#hide-" + result_class);
+                                 var input_element = element.querySelector("input");
+                                 if (!style_element && !input_element.checked) {
+                                     style_element = output_document.createElementNS(xhtml_ns, "style");
+                                     style_element.id = "hide-" + result_class;
+                                     style_element.textContent = "table#results > tbody > tr."+result_class+"{display:none}";
+                                     output_document.body.appendChild(style_element);
+                                 } else if (style_element && input_element.checked) {
+                                     style_element.parentNode.removeChild(style_element);
+                                 }
+                             });
+                });
+
+        // This use of innerHTML plus manual escaping is not recommended in
+        // general, but is necessary here for performance.  Using textContent
+        // on each individual <td> adds tens of seconds of execution time for
+        // large test suites (tens of thousands of tests).
+        function escape_html(s)
+        {
+            return s.replace(/\&/g, "&amp;")
+                .replace(/</g, "&lt;")
+                .replace(/"/g, "&quot;")
+                .replace(/'/g, "&#39;");
+        }
+
+        function has_assertions()
+        {
+            for (var i = 0; i < tests.length; i++) {
+                if (tests[i].properties.hasOwnProperty("assert")) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        function get_assertion(test)
+        {
+            if (test.properties.hasOwnProperty("assert")) {
+                if (Array.isArray(test.properties.assert)) {
+                    return test.properties.assert.join(' ');
+                }
+                return test.properties.assert;
+            }
+            return '';
+        }
+
+        log.appendChild(document.createElementNS(xhtml_ns, "section"));
+        var assertions = has_assertions();
+        var html = "<h2>Details</h2><table id='results' " + (assertions ? "class='assertions'" : "" ) + ">" +
+            "<thead><tr><th>Result</th><th>Test Name</th>" +
+            (assertions ? "<th>Assertion</th>" : "") +
+            "<th>Message</th></tr></thead>" +
+            "<tbody>";
+        for (var i = 0; i < tests.length; i++) {
+            html += '<tr class="' +
+                escape_html(status_class(status_text[tests[i].status])) +
+                '"><td>' +
+                escape_html(status_text[tests[i].status]) +
+                "</td><td>" +
+                escape_html(tests[i].name) +
+                "</td><td>" +
+                (assertions ? escape_html(get_assertion(tests[i])) + "</td><td>" : "") +
+                escape_html(tests[i].message ? tests[i].message : " ") +
+                "</td></tr>";
+        }
+        html += "</tbody></table>";
+        try {
+            log.lastChild.innerHTML = html;
+        } catch (e) {
+            log.appendChild(document.createElementNS(xhtml_ns, "p"))
+               .textContent = "Setting innerHTML for the log threw an exception.";
+            log.appendChild(document.createElementNS(xhtml_ns, "pre"))
+               .textContent = html;
+        }
+    };
+
+    /*
+     * Template code
+     *
+     * A template is just a javascript structure. An element is represented as:
+     *
+     * [tag_name, {attr_name:attr_value}, child1, child2]
+     *
+     * the children can either be strings (which act like text nodes), other templates or
+     * functions (see below)
+     *
+     * A text node is represented as
+     *
+     * ["{text}", value]
+     *
+     * String values have a simple substitution syntax; ${foo} represents a variable foo.
+     *
+     * It is possible to embed logic in templates by using a function in a place where a
+     * node would usually go. The function must either return part of a template or null.
+     *
+     * In cases where a set of nodes are required as output rather than a single node
+     * with children it is possible to just use a list
+     * [node1, node2, node3]
+     *
+     * Usage:
+     *
+     * render(template, substitutions) - take a template and an object mapping
+     * variable names to parameters and return either a DOM node or a list of DOM nodes
+     *
+     * substitute(template, substitutions) - take a template and variable mapping object,
+     * make the variable substitutions and return the substituted template
+     *
+     */
+
+    function is_single_node(template)
+    {
+        return typeof template[0] === "string";
+    }
+
+    function substitute(template, substitutions)
+    {
+        if (typeof template === "function") {
+            var replacement = template(substitutions);
+            if (!replacement) {
+                return null;
+            }
+
+            return substitute(replacement, substitutions);
+        }
+
+        if (is_single_node(template)) {
+            return substitute_single(template, substitutions);
+        }
+
+        return filter(map(template, function(x) {
+                              return substitute(x, substitutions);
+                          }), function(x) {return x !== null;});
+    }
+
+    function substitute_single(template, substitutions)
+    {
+        var substitution_re = /\$\{([^ }]*)\}/g;
+
+        function do_substitution(input) {
+            var components = input.split(substitution_re);
+            var rv = [];
+            for (var i = 0; i < components.length; i += 2) {
+                rv.push(components[i]);
+                if (components[i + 1]) {
+                    rv.push(String(substitutions[components[i + 1]]));
+                }
+            }
+            return rv;
+        }
+
+        function substitute_attrs(attrs, rv)
+        {
+            rv[1] = {};
+            for (var name in template[1]) {
+                if (attrs.hasOwnProperty(name)) {
+                    var new_name = do_substitution(name).join("");
+                    var new_value = do_substitution(attrs[name]).join("");
+                    rv[1][new_name] = new_value;
+                }
+            }
+        }
+
+        function substitute_children(children, rv)
+        {
+            for (var i = 0; i < children.length; i++) {
+                if (children[i] instanceof Object) {
+                    var replacement = substitute(children[i], substitutions);
+                    if (replacement !== null) {
+                        if (is_single_node(replacement)) {
+                            rv.push(replacement);
+                        } else {
+                            extend(rv, replacement);
+                        }
+                    }
+                } else {
+                    extend(rv, do_substitution(String(children[i])));
+                }
+            }
+            return rv;
+        }
+
+        var rv = [];
+        rv.push(do_substitution(String(template[0])).join(""));
+
+        if (template[0] === "{text}") {
+            substitute_children(template.slice(1), rv);
+        } else {
+            substitute_attrs(template[1], rv);
+            substitute_children(template.slice(2), rv);
+        }
+
+        return rv;
+    }
+
+    function make_dom_single(template, doc)
+    {
+        var output_document = doc || document;
+        var element;
+        if (template[0] === "{text}") {
+            element = output_document.createTextNode("");
+            for (var i = 1; i < template.length; i++) {
+                element.data += template[i];
+            }
+        } else {
+            element = output_document.createElementNS(xhtml_ns, template[0]);
+            for (var name in template[1]) {
+                if (template[1].hasOwnProperty(name)) {
+                    element.setAttribute(name, template[1][name]);
+                }
+            }
+            for (var i = 2; i < template.length; i++) {
+                if (template[i] instanceof Object) {
+                    var sub_element = make_dom(template[i]);
+                    element.appendChild(sub_element);
+                } else {
+                    var text_node = output_document.createTextNode(template[i]);
+                    element.appendChild(text_node);
+                }
+            }
+        }
+
+        return element;
+    }
+
+    function make_dom(template, substitutions, output_document)
+    {
+        if (is_single_node(template)) {
+            return make_dom_single(template, output_document);
+        }
+
+        return map(template, function(x) {
+                       return make_dom_single(x, output_document);
+                   });
+    }
+
+    function render(template, substitutions, output_document)
+    {
+        return make_dom(substitute(template, substitutions), output_document);
+    }
+
+    /*
+     * Utility funcions
+     */
+    function assert(expected_true, function_name, description, error, substitutions)
+    {
+        if (tests.tests.length === 0) {
+            tests.set_file_is_test();
+        }
+        if (expected_true !== true) {
+            var msg = make_message(function_name, description,
+                                   error, substitutions);
+            throw new AssertionError(msg);
+        }
+    }
+
+    function AssertionError(message)
+    {
+        this.message = message;
+    }
+
+    AssertionError.prototype.toString = function() {
+        return this.message;
+    };
+
+    function make_message(function_name, description, error, substitutions)
+    {
+        for (var p in substitutions) {
+            if (substitutions.hasOwnProperty(p)) {
+                substitutions[p] = format_value(substitutions[p]);
+            }
+        }
+        var node_form = substitute(["{text}", "${function_name}: ${description}" + error],
+                                   merge({function_name:function_name,
+                                          description:(description?description + " ":"")},
+                                          substitutions));
+        return node_form.slice(1).join("");
+    }
+
+    function filter(array, callable, thisObj) {
+        var rv = [];
+        for (var i = 0; i < array.length; i++) {
+            if (array.hasOwnProperty(i)) {
+                var pass = callable.call(thisObj, array[i], i, array);
+                if (pass) {
+                    rv.push(array[i]);
+                }
+            }
+        }
+        return rv;
+    }
+
+    function map(array, callable, thisObj)
+    {
+        var rv = [];
+        rv.length = array.length;
+        for (var i = 0; i < array.length; i++) {
+            if (array.hasOwnProperty(i)) {
+                rv[i] = callable.call(thisObj, array[i], i, array);
+            }
+        }
+        return rv;
+    }
+
+    function extend(array, items)
+    {
+        Array.prototype.push.apply(array, items);
+    }
+
+    function forEach (array, callback, thisObj)
+    {
+        for (var i = 0; i < array.length; i++) {
+            if (array.hasOwnProperty(i)) {
+                callback.call(thisObj, array[i], i, array);
+            }
+        }
+    }
+
+    function merge(a,b)
+    {
+        var rv = {};
+        var p;
+        for (p in a) {
+            rv[p] = a[p];
+        }
+        for (p in b) {
+            rv[p] = b[p];
+        }
+        return rv;
+    }
+
+    function expose(object, name)
+    {
+        var components = name.split(".");
+        var target = test_environment.global_scope();
+        for (var i = 0; i < components.length - 1; i++) {
+            if (!(components[i] in target)) {
+                target[components[i]] = {};
+            }
+            target = target[components[i]];
+        }
+        target[components[components.length - 1]] = object;
+    }
+
+    function is_same_origin(w) {
+        try {
+            'random_prop' in w;
+            return true;
+        } catch (e) {
+            return false;
+        }
+    }
+
+    function supports_post_message(w)
+    {
+        var supports;
+        var type;
+        // Given IE  implements postMessage across nested iframes but not across
+        // windows or tabs, you can't infer cross-origin communication from the presence
+        // of postMessage on the current window object only.
+        //
+        // Touching the postMessage prop on a window can throw if the window is
+        // not from the same origin AND post message is not supported in that
+        // browser. So just doing an existence test here won't do, you also need
+        // to wrap it in a try..cacth block.
+        try {
+            type = typeof w.postMessage;
+            if (type === "function") {
+                supports = true;
+            }
+
+            // IE8 supports postMessage, but implements it as a host object which
+            // returns "object" as its `typeof`.
+            else if (type === "object") {
+                supports = true;
+            }
+
+            // This is the case where postMessage isn't supported AND accessing a
+            // window property across origins does NOT throw (e.g. old Safari browser).
+            else {
+                supports = false;
+            }
+        } catch (e) {
+            // This is the case where postMessage isn't supported AND accessing a
+            // window property across origins throws (e.g. old Firefox browser).
+            supports = false;
+        }
+        return supports;
+    }
+
+    /**
+     * Setup globals
+     */
+
+    var tests = new Tests();
+
+    addEventListener("error", function(e) {
+        if (tests.file_is_test) {
+            var test = tests.tests[0];
+            if (test.phase >= test.phases.HAS_RESULT) {
+                return;
+            }
+            var message = e.message;
+            test.set_status(test.FAIL, message);
+            test.phase = test.phases.HAS_RESULT;
+            test.done();
+            done();
+        } else if (!tests.allow_uncaught_exception) {
+            tests.status.status = tests.status.ERROR;
+            tests.status.message = e.message;
+        }
+    });
+
+    test_environment.on_tests_ready();
+
+})();
+// vim: set expandtab shiftwidth=4 tabstop=4:
diff --git a/common/tct-geoallow-w3c-tests/resources/testharnessreport.js b/common/tct-geoallow-w3c-tests/resources/testharnessreport.js
new file mode 100755 (executable)
index 0000000..d7df7e2
--- /dev/null
@@ -0,0 +1,397 @@
+/*global add_completion_callback, setup */
+/*
+ * This file is intended for vendors to implement
+ * code needed to integrate testharness.js tests with their own test systems.
+ *
+ * The default implementation extracts metadata from the tests and validates
+ * it against the cached version that should be present in the test source
+ * file. If the cache is not found or is out of sync, source code suitable for
+ * caching the metadata is optionally generated.
+ *
+ * The cached metadata is present for extraction by test processing tools that
+ * are unable to execute javascript.
+ *
+ * Metadata is attached to tests via the properties parameter in the test
+ * constructor. See testharness.js for details.
+ *
+ * Typically test system integration will attach callbacks when each test has
+ * run, using add_result_callback(callback(test)), or when the whole test file
+ * has completed, using
+ * add_completion_callback(callback(tests, harness_status)).
+ *
+ * For more documentation about the callback functions and the
+ * parameters they are called with see testharness.js
+ */
+
+
+
+var metadata_generator = {
+
+    currentMetadata: {},
+    cachedMetadata: false,
+    metadataProperties: ['help', 'assert', 'author'],
+
+    error: function(message) {
+        var messageElement = document.createElement('p');
+        messageElement.setAttribute('class', 'error');
+        this.appendText(messageElement, message);
+
+        var summary = document.getElementById('summary');
+        if (summary) {
+            summary.parentNode.insertBefore(messageElement, summary);
+        }
+        else {
+            document.body.appendChild(messageElement);
+        }
+    },
+
+    /**
+     * Ensure property value has contact information
+     */
+    validateContact: function(test, propertyName) {
+        var result = true;
+        var value = test.properties[propertyName];
+        var values = Array.isArray(value) ? value : [value];
+        for (var index = 0; index < values.length; index++) {
+            value = values[index];
+            var re = /(\S+)(\s*)<(.*)>(.*)/;
+            if (! re.test(value)) {
+                re = /(\S+)(\s+)(http[s]?:\/\/)(.*)/;
+                if (! re.test(value)) {
+                    this.error('Metadata property "' + propertyName +
+                        '" for test: "' + test.name +
+                        '" must have name and contact information ' +
+                        '("name <email>" or "name http(s)://")');
+                    result = false;
+                }
+            }
+        }
+        return result;
+    },
+
+    /**
+     * Extract metadata from test object
+     */
+    extractFromTest: function(test) {
+        var testMetadata = {};
+        // filter out metadata from other properties in test
+        for (var metaIndex = 0; metaIndex < this.metadataProperties.length;
+             metaIndex++) {
+            var meta = this.metadataProperties[metaIndex];
+            if (test.properties.hasOwnProperty(meta)) {
+                if ('author' == meta) {
+                    this.validateContact(test, meta);
+                }
+                testMetadata[meta] = test.properties[meta];
+            }
+        }
+        return testMetadata;
+    },
+
+    /**
+     * Compare cached metadata to extracted metadata
+     */
+    validateCache: function() {
+        for (var testName in this.currentMetadata) {
+            if (! this.cachedMetadata.hasOwnProperty(testName)) {
+                return false;
+            }
+            var testMetadata = this.currentMetadata[testName];
+            var cachedTestMetadata = this.cachedMetadata[testName];
+            delete this.cachedMetadata[testName];
+
+            for (var metaIndex = 0; metaIndex < this.metadataProperties.length;
+                 metaIndex++) {
+                var meta = this.metadataProperties[metaIndex];
+                if (cachedTestMetadata.hasOwnProperty(meta) &&
+                    testMetadata.hasOwnProperty(meta)) {
+                    if (Array.isArray(cachedTestMetadata[meta])) {
+                      if (! Array.isArray(testMetadata[meta])) {
+                          return false;
+                      }
+                      if (cachedTestMetadata[meta].length ==
+                          testMetadata[meta].length) {
+                          for (var index = 0;
+                               index < cachedTestMetadata[meta].length;
+                               index++) {
+                              if (cachedTestMetadata[meta][index] !=
+                                  testMetadata[meta][index]) {
+                                  return false;
+                              }
+                          }
+                      }
+                      else {
+                          return false;
+                      }
+                    }
+                    else {
+                      if (Array.isArray(testMetadata[meta])) {
+                        return false;
+                      }
+                      if (cachedTestMetadata[meta] != testMetadata[meta]) {
+                        return false;
+                      }
+                    }
+                }
+                else if (cachedTestMetadata.hasOwnProperty(meta) ||
+                         testMetadata.hasOwnProperty(meta)) {
+                    return false;
+                }
+            }
+        }
+        for (var testName in this.cachedMetadata) {
+            return false;
+        }
+        return true;
+    },
+
+    appendText: function(elemement, text) {
+        elemement.appendChild(document.createTextNode(text));
+    },
+
+    jsonifyArray: function(arrayValue, indent) {
+        var output = '[';
+
+        if (1 == arrayValue.length) {
+            output += JSON.stringify(arrayValue[0]);
+        }
+        else {
+            for (var index = 0; index < arrayValue.length; index++) {
+                if (0 < index) {
+                    output += ',\n  ' + indent;
+                }
+                output += JSON.stringify(arrayValue[index]);
+            }
+        }
+        output += ']';
+        return output;
+    },
+
+    jsonifyObject: function(objectValue, indent) {
+        var output = '{';
+        var value;
+
+        var count = 0;
+        for (var property in objectValue) {
+            ++count;
+            if (Array.isArray(objectValue[property]) ||
+                ('object' == typeof(value))) {
+                ++count;
+            }
+        }
+        if (1 == count) {
+            for (var property in objectValue) {
+                output += ' "' + property + '": ' +
+                    JSON.stringify(objectValue[property]) +
+                    ' ';
+            }
+        }
+        else {
+            var first = true;
+            for (var property in objectValue) {
+                if (! first) {
+                    output += ',';
+                }
+                first = false;
+                output += '\n  ' + indent + '"' + property + '": ';
+                value = objectValue[property];
+                if (Array.isArray(value)) {
+                    output += this.jsonifyArray(value, indent +
+                        '                '.substr(0, 5 + property.length));
+                }
+                else if ('object' == typeof(value)) {
+                    output += this.jsonifyObject(value, indent + '  ');
+                }
+                else {
+                    output += JSON.stringify(value);
+                }
+            }
+            if (1 < output.length) {
+                output += '\n' + indent;
+            }
+        }
+        output += '}';
+        return output;
+    },
+
+    /**
+     * Generate javascript source code for captured metadata
+     * Metadata is in pretty-printed JSON format
+     */
+    generateSource: function() {
+        var source =
+            '<script id="metadata_cache">/*\n' +
+            this.jsonifyObject(this.currentMetadata, '') + '\n' +
+            '*/</script>\n';
+        return source;
+    },
+
+    /**
+     * Add element containing metadata source code
+     */
+    addSourceElement: function(event) {
+        var sourceWrapper = document.createElement('div');
+        sourceWrapper.setAttribute('id', 'metadata_source');
+
+        var instructions = document.createElement('p');
+        if (this.cachedMetadata) {
+            this.appendText(instructions,
+                'Replace the existing <script id="metadata_cache"> element ' +
+                'in the test\'s <head> with the following:');
+        }
+        else {
+            this.appendText(instructions,
+                'Copy the following into the <head> element of the test ' +
+                'or the test\'s metadata sidecar file:');
+        }
+        sourceWrapper.appendChild(instructions);
+
+        var sourceElement = document.createElement('pre');
+        this.appendText(sourceElement, this.generateSource());
+
+        sourceWrapper.appendChild(sourceElement);
+
+        var messageElement = document.getElementById('metadata_issue');
+        messageElement.parentNode.insertBefore(sourceWrapper,
+                                               messageElement.nextSibling);
+        messageElement.parentNode.removeChild(messageElement);
+
+        (event.preventDefault) ? event.preventDefault() :
+                                 event.returnValue = false;
+    },
+
+    /**
+     * Extract the metadata cache from the cache element if present
+     */
+    getCachedMetadata: function() {
+        var cacheElement = document.getElementById('metadata_cache');
+
+        if (cacheElement) {
+            var cacheText = cacheElement.firstChild.nodeValue;
+            var openBrace = cacheText.indexOf('{');
+            var closeBrace = cacheText.lastIndexOf('}');
+            if ((-1 < openBrace) && (-1 < closeBrace)) {
+                cacheText = cacheText.slice(openBrace, closeBrace + 1);
+                try {
+                    this.cachedMetadata = JSON.parse(cacheText);
+                }
+                catch (exc) {
+                    this.cachedMetadata = 'Invalid JSON in Cached metadata. ';
+                }
+            }
+            else {
+                this.cachedMetadata = 'Metadata not found in cache element. ';
+            }
+        }
+    },
+
+    /**
+     * Main entry point, extract metadata from tests, compare to cached version
+     * if present.
+     * If cache not present or differs from extrated metadata, generate an error
+     */
+    process: function(tests) {
+        for (var index = 0; index < tests.length; index++) {
+            var test = tests[index];
+            if (this.currentMetadata.hasOwnProperty(test.name)) {
+                this.error('Duplicate test name: ' + test.name);
+            }
+            else {
+                this.currentMetadata[test.name] = this.extractFromTest(test);
+            }
+        }
+
+        this.getCachedMetadata();
+
+        var message = null;
+        var messageClass = 'warning';
+        var showSource = false;
+
+        if (0 === tests.length) {
+            if (this.cachedMetadata) {
+                message = 'Cached metadata present but no tests. ';
+            }
+        }
+        else if (1 === tests.length) {
+            if (this.cachedMetadata) {
+                message = 'Single test files should not have cached metadata. ';
+            }
+            else {
+                var testMetadata = this.currentMetadata[tests[0].name];
+                for (var meta in testMetadata) {
+                    if (testMetadata.hasOwnProperty(meta)) {
+                        message = 'Single tests should not have metadata. ' +
+                                  'Move metadata to <head>. ';
+                        break;
+                    }
+                }
+            }
+        }
+        else {
+            if (this.cachedMetadata) {
+                messageClass = 'error';
+                if ('string' == typeof(this.cachedMetadata)) {
+                    message = this.cachedMetadata;
+                    showSource = true;
+                }
+                else if (! this.validateCache()) {
+                    message = 'Cached metadata out of sync. ';
+                    showSource = true;
+                }
+            }
+        }
+
+        if (message) {
+            var messageElement = document.createElement('p');
+            messageElement.setAttribute('id', 'metadata_issue');
+            messageElement.setAttribute('class', messageClass);
+            this.appendText(messageElement, message);
+
+            if (showSource) {
+                var link = document.createElement('a');
+                this.appendText(link, 'Click for source code.');
+                link.setAttribute('href', '#');
+                link.setAttribute('onclick',
+                                  'metadata_generator.addSourceElement(event)');
+                messageElement.appendChild(link);
+            }
+
+            var summary = document.getElementById('summary');
+            if (summary) {
+                summary.parentNode.insertBefore(messageElement, summary);
+            }
+            else {
+                var log = document.getElementById('log');
+                if (log) {
+                    log.appendChild(messageElement);
+                }
+            }
+        }
+    },
+
+    setup: function() {
+        add_completion_callback(
+            function (tests, harness_status) {
+                metadata_generator.process(tests, harness_status);
+            });
+    }
+};
+
+metadata_generator.setup();
+
+/* If the parent window has a testharness_properties object,
+ * we use this to provide the test settings. This is used by the
+ * default in-browser runner to configure the timeout and the
+ * rendering of results
+ */
+try {
+    if (window.opener && "testharness_properties" in window.opener) {
+        /* If we pass the testharness_properties object as-is here without
+         * JSON stringifying and reparsing it, IE fails & emits the message
+         * "Could not complete the operation due to error 80700019".
+         */
+        setup(JSON.parse(JSON.stringify(window.opener.testharness_properties)));
+    }
+} catch (e) {
+}
+// vim: set expandtab shiftwidth=4 tabstop=4:
diff --git a/common/tct-geoallow-w3c-tests/suite.json b/common/tct-geoallow-w3c-tests/suite.json
new file mode 100755 (executable)
index 0000000..753aedc
--- /dev/null
@@ -0,0 +1,59 @@
+{
+    "pkg-blacklist": [
+        "config.xml",
+        "pack.py",
+        "testcase.xsl",
+        "testresult.xsl",
+        "tests.css",
+        "icon.png",
+        "manifest.json",
+        "suite.json",
+        "inst.*"
+    ],
+    "pkg-list": {
+        "apk,cordova": {
+            "blacklist": [
+                "*"
+            ],
+            "copylist": {
+                "inst.apk.py": "inst.py",
+                "tests.full.xml": "tests.full.xml",
+                "tests.xml": "tests.xml"
+            },
+            "pkg-app": {
+                "sign-flag": "true"
+            }
+        },
+        "apk-aio, cordova-aio": {
+            "blacklist": []
+        },
+        "wgt": {
+            "blacklist": [
+                "*"
+            ],
+            "copylist": {
+                "inst.wgt.py": "inst.py",
+                "tests.full.xml": "tests.full.xml",
+                "tests.xml": "tests.xml"
+            },
+            "pkg-app": {
+                "sign-flag": "true"
+            }
+        },
+        "xpk": {
+            "blacklist": [
+                "*"
+            ],
+            "copylist": {
+                "inst.xpk.py": "inst.py",
+                "tests.full.xml": "tests.full.xml",
+                "tests.xml": "tests.xml"
+            },
+            "pkg-app": {
+                "blacklist": [],
+                "sign-flag": "true"
+            }
+        }
+    },
+    "pkg-name": "tct-geoallow-w3c-tests"
+}
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/testcase.xsl b/common/tct-geoallow-w3c-tests/testcase.xsl
new file mode 100755 (executable)
index 0000000..fb32685
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
+  <xsl:template match="/">
+    <html>
+      <STYLE type="text/css">
+        @import "tests.css";
+      </STYLE>
+      <head>
+        <script type="text/javascript" src="jquery.min.js"/>
+      </head>
+      <body>
+        <div id="testcasepage">
+          <div id="title">
+            <table>
+              <tr>
+                <td>
+                  <h1>Test Cases</h1>
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="suites">
+            <a name="contents"/>
+            <table>
+              <tr>
+                <th>Test Suite</th>
+                <th>Total</th>
+                <th>Auto</th>
+                <th>Manual</th>
+              </tr>
+              <tr>
+                <td>
+                  Total
+                </td>
+                <td>
+                  <xsl:value-of select="count(test_definition/suite/set//testcase)"/>
+                </td>
+                <td>
+                  <xsl:value-of select="count(test_definition/suite/set//testcase[@execution_type = 'auto'])"/>
+                </td>
+                <td>
+                  <xsl:value-of select="count(test_definition/suite/set//testcase[@execution_type != 'auto'])"/>
+                </td>
+              </tr>
+              <xsl:for-each select="test_definition/suite">
+                <tr>
+                  <td>
+                    <a>
+                      <xsl:attribute name="href">
+                        #<xsl:value-of select="@name"/>
+                      </xsl:attribute>
+                      <xsl:value-of select="@name"/>
+                    </a>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase)"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set/testcase[@execution_type = 'auto'])"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set/testcase[@execution_type != 'auto'])"/>
+                  </td>
+                </tr>
+              </xsl:for-each>
+            </table>
+          </div>
+          <div id="title">
+            <table>
+              <tr>
+                <td class="title">
+                  <h1>Detailed Test Cases</h1>
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="cases">
+            <xsl:for-each select="test_definition/suite">
+              <xsl:sort select="@name"/>
+              <div id="btc">
+                <a href="#contents">Back to Contents</a>
+              </div>
+              <div id="suite_title">
+                Test Suite:
+                <xsl:value-of select="@name"/>
+                <a><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></a>
+              </div>
+              <table>
+                <tr>
+                  <th>Case_ID</th>
+                  <th>Purpose</th>
+                  <th>Type</th>
+                  <th>Component</th>
+                  <th>Execution Type</th>
+                  <th>Description</th>
+                  <th>Specification</th>
+                </tr>
+                <xsl:for-each select=".//set">
+                  <xsl:sort select="@name"/>
+                  <tr>
+                    <td colspan="7">
+                      Test Set:
+                      <xsl:value-of select="@name"/>
+                    </td>
+                  </tr>
+                  <xsl:for-each select=".//testcase">
+                    <!-- xsl:sort select="@id" /> -->
+                    <tr>
+                      <td>
+                        <xsl:value-of select="@id"/>
+                      </td>
+                      <td>
+                        <xsl:value-of select="@purpose"/>
+                      </td>
+                      <td>
+                        <xsl:value-of select="@type"/>
+                      </td>
+                      <td>
+                        <xsl:value-of select="@component"/>
+                      </td>
+                      <td>
+                        <xsl:value-of select="@execution_type"/>
+                      </td>
+                      <td>
+                        <p>
+                          Pre_condition:
+                          <xsl:value-of select=".//description/pre_condition"/>
+                        </p>
+                        <p>
+                          Post_condition:
+                          <xsl:value-of select=".//description/post_condition"/>
+                        </p>
+                        <p>
+                          Test Script Entry:
+                          <xsl:value-of select=".//description/test_script_entry"/>
+                        </p>
+                        <p>
+                          Steps:
+                          <p/>
+                          <xsl:for-each select=".//description/steps/step"><xsl:sort select="@order"/>
+                            Step
+                            <xsl:value-of select="@order"/>
+                            :
+                            <xsl:value-of select="./step_desc"/>
+                            ;
+                            <p/>
+                            Expected Result:
+                            <xsl:value-of select="./expected"/>
+                            <p/>
+                          </xsl:for-each>
+                        </p>
+                      </td>
+                      <td>
+                        <xsl:for-each select=".//specs/spec"><b>[Spec_Assertion]:</b><br/>
+                          [Category]:
+                          <xsl:value-of select="./spec_assertion/@category"/>
+                          <br/>
+                          [Section]:
+                          <xsl:value-of select="./spec_assertion/@section"/>
+                          <br/>
+                          [Specification]:
+                          <xsl:value-of select="./spec_assertion/@specification"/>
+                          <br/>
+                          [Interface]:
+                          <xsl:value-of select="./spec_assertion/@interface"/>
+                          <br/>
+                          <xsl:choose><xsl:when test="./spec_assertion/@element_name">
+                              [<xsl:value-of select="./spec_assertion/@element_type"/>]:
+                              <xsl:value-of select="./spec_assertion/@element_name"/>
+                              <br/>
+                            </xsl:when></xsl:choose>
+                          [URL]:
+                          <xsl:value-of select="./spec_url"/>
+                          <br/>
+                          [Statement]:
+                          <xsl:value-of select="./spec_statement"/>
+                          <br/>
+                        </xsl:for-each>
+                      </td>
+                    </tr>
+                  </xsl:for-each>
+                </xsl:for-each>
+              </table>
+            </xsl:for-each>
+          </div>
+        </div>
+        <div id="goTopBtn">
+          <img border="0" src="./back_top.png"/>
+        </div>
+        <script type="text/javascript" src="application.js"/>
+        <script language="javascript" type="text/javascript">
+          $(document).ready(function(){
+            goTopEx();
+          });
+        </script>
+      </body>
+    </html>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/common/tct-geoallow-w3c-tests/testresult.xsl b/common/tct-geoallow-w3c-tests/testresult.xsl
new file mode 100755 (executable)
index 0000000..c5199c0
--- /dev/null
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
+  <xsl:template match="/">
+    <html>
+      <STYLE type="text/css">
+        @import "tests.css";
+      </STYLE>
+      <head>
+        <script type="text/javascript" src="jquery.min.js"/>
+      </head>
+      <body>
+        <div id="testcasepage">
+          <div id="title">
+            <table>
+              <tr>
+                <td>
+                  <h1>Test Report</h1>
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="device">
+            <table>
+              <tr>
+                <th colspan="2">Device Information</th>
+              </tr>
+              <tr>
+                <td>Device Name</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@device_name">
+                      <xsl:if test="test_definition/environment/@device_name = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@device_name"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Device Model</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@device_model">
+                      <xsl:if test="test_definition/environment/@device_model = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@device_model"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>OS Version</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@os_version">
+                      <xsl:if test="test_definition/environment/@os_version = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@os_version"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Device ID</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@device_id">
+                      <xsl:if test="test_definition/environment/@device_id = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@device_id"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Firmware Version</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@firmware_version">
+                      <xsl:if test="test_definition/environment/@firmware_version = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@firmware_version"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Build ID</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@build_id">
+                      <xsl:if test="test_definition/environment/@build_id = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@build_id"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Screen Size</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@screen_size">
+                      <xsl:if test="test_definition/environment/@screen_size = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@screen_size"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Resolution</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@resolution">
+                      <xsl:if test="test_definition/environment/@resolution = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@resolution"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Host Info</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@host">
+                      <xsl:if test="test_definition/environment/@host = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@host"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>CTS Version</td>
+                <td>
+                  <xsl:choose>
+                    <xsl:when test="test_definition/environment/@cts_version">
+                      <xsl:if test="test_definition/environment/@cts_version = ''">
+                        N/A
+                      </xsl:if>
+                      <xsl:value-of select="test_definition/environment/@cts_version"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      N/A
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </td>
+              </tr>
+              <tr>
+                <td>Others</td>
+                <td>
+                  <xsl:if test="test_definition/environment/other = ''">
+                    N/A
+                  </xsl:if>
+                  <xsl:call-template name="br-replace">
+                    <xsl:with-param name="word" select="test_definition/environment/other"/>
+                  </xsl:call-template>
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="summary">
+            <table>
+              <tr>
+                <th colspan="2">Test Summary</th>
+              </tr>
+              <tr>
+                <td>Test Plan Name</td>
+                <td>
+                  <xsl:value-of select="test_definition/summary/@test_plan_name"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Tests Total</td>
+                <td>
+                  <xsl:value-of select="count(test_definition//suite/set/testcase)"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Test Passed</td>
+                <td>
+                  <xsl:value-of select="count(test_definition//suite/set/testcase[@result = 'PASS'])"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Test Failed</td>
+                <td>
+                  <xsl:value-of select="count(test_definition//suite/set/testcase[@result = 'FAIL'])"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Test Block</td>
+                <td>
+                  <xsl:value-of select="count(test_definition//suite/set/testcase[@result = 'BLOCK'])"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Test Not Run</td>
+                <td>
+                  <xsl:value-of select="count(test_definition//suite/set/testcase) - count(test_definition//suite/set/testcase[@result = 'PASS']) - count(test_definition//suite/set/testcase[@result = 'FAIL']) - count(test_definition//suite/set/testcase[@result = 'BLOCK'])"/>
+                </td>
+              </tr>
+              <tr>
+                <td>Start time</td>
+                <td>
+                  <xsl:value-of select="test_definition/summary/start_at"/>
+                </td>
+              </tr>
+              <tr>
+                <td>End time</td>
+                <td>
+                  <xsl:value-of select="test_definition/summary/end_at"/>
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="suite_summary">
+            <div id="title">
+              <a name="contents"/>
+              <table>
+                <tr>
+                  <td class="title">
+                    <h1>Test Summary by Suite</h1>
+                  </td>
+                </tr>
+              </table>
+            </div>
+            <table>
+              <tr>
+                <th>Suite</th>
+                <th>Passed</th>
+                <th>Failed</th>
+                <th>Blocked</th>
+                <th>Not Run</th>
+                <th>Total</th>
+              </tr>
+              <xsl:for-each select="test_definition/suite">
+                <xsl:sort select="@name"/>
+                <tr>
+                  <td>
+                    <a>
+                      <xsl:attribute name="href">
+                        #<xsl:value-of select="@name"/>
+                      </xsl:attribute>
+                      <xsl:value-of select="@name"/>
+                    </a>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase[@result = 'PASS'])"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase[@result = 'FAIL'])"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase[@result = 'BLOCK'])"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase) - count(set//testcase[@result = 'PASS']) - count(set//testcase[@result = 'FAIL']) - count(set//testcase[@result = 'BLOCK'])"/>
+                  </td>
+                  <td>
+                    <xsl:value-of select="count(set//testcase)"/>
+                  </td>
+                </tr>
+              </xsl:for-each>
+            </table>
+          </div>
+          <div id="fail_cases">
+            <div id="title">
+              <table>
+                <tr>
+                  <td class="title">
+                    <h1 align="center">
+                      Test Failures (
+                        <xsl:value-of select="count(test_definition/suite/set//testcase[@result = 'FAIL'])"/>
+                      )
+                    </h1>
+                  </td>
+                </tr>
+              </table>
+            </div>
+            <xsl:for-each select="test_definition/suite">
+              <xsl:sort select="@name"/>
+              <div id="btc">
+                <a href="#contents">Back to Contents</a>
+              </div>
+              <div id="suite_title">
+                Test Suite:
+                <xsl:value-of select="@name"/>
+                <a><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></a>
+              </div>
+              <table>
+                <tr>
+                  <th>Case_ID</th>
+                  <th>Purpose</th>
+                  <th>Result</th>
+                  <th>Stdout</th>
+                </tr>
+                <xsl:for-each select=".//set">
+                  <xsl:sort select="@name"/>
+                  <tr>
+                    <td colspan="4">
+                      Test Set:
+                      <xsl:value-of select="@name"/>
+                    </td>
+                  </tr>
+                  <xsl:for-each select=".//testcase">
+                    <xsl:sort select="@id"/>
+                    <xsl:choose>
+                      <xsl:when test="@result">
+                        <xsl:if test="@result = 'FAIL'">
+                          <tr>
+                            <td>
+                              <xsl:value-of select="@id"/>
+                            </td>
+                            <td>
+                              <xsl:value-of select="@purpose"/>
+                            </td>
+                            <td class="red_rate">
+                              <xsl:value-of select="@result"/>
+                            </td>
+                            <td>
+                              <xsl:value-of select=".//result_info/stdout"/>
+                              <xsl:if test=".//result_info/stdout = ''">
+                                N/A
+                              </xsl:if>
+                            </td>
+                          </tr>
+                        </xsl:if>
+                      </xsl:when>
+                    </xsl:choose>
+                  </xsl:for-each>
+                </xsl:for-each>
+              </table>
+            </xsl:for-each>
+          </div>
+          <div id="cases">
+            <div id="title">
+              <table>
+                <tr>
+                  <td class="title">
+                    <h1 align="center">Detailed Test Results</h1>
+                  </td>
+                </tr>
+              </table>
+            </div>
+            <xsl:for-each select="test_definition/suite">
+              <xsl:sort select="@name"/>
+              <div id="btc">
+                <a href="#contents">Back to Contents</a>
+              </div>
+              <div id="suite_title">
+                Test Suite:
+                <xsl:value-of select="@name"/>
+                <a><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></a>
+              </div>
+              <table>
+                <tr>
+                  <th>Case_ID</th>
+                  <th>Purpose</th>
+                  <th>Result</th>
+                  <th>Stdout</th>
+                </tr>
+                <xsl:for-each select=".//set">
+                  <xsl:sort select="@name"/>
+                  <tr>
+                    <td colspan="4">
+                      Test Set:
+                      <xsl:value-of select="@name"/>
+                    </td>
+                  </tr>
+                  <xsl:for-each select=".//testcase">
+                    <xsl:sort select="@id"/>
+                    <tr>
+                      <td>
+                        <xsl:value-of select="@id"/>
+                      </td>
+                      <td>
+                        <xsl:value-of select="@purpose"/>
+                      </td>
+                      <xsl:choose>
+                        <xsl:when test="@result">
+                          <xsl:if test="@result = 'FAIL'">
+                            <td class="red_rate">
+                              <xsl:value-of select="@result"/>
+                            </td>
+                          </xsl:if>
+                          <xsl:if test="@result = 'PASS'">
+                            <td class="green_rate">
+                              <xsl:value-of select="@result"/>
+                            </td>
+                          </xsl:if>
+                          <xsl:if test="@result = 'BLOCK' ">
+                            <td>
+                              BLOCK
+                            </td>
+                          </xsl:if>
+                          <xsl:if test="@result != 'BLOCK' and @result != 'FAIL' and @result != 'PASS' ">
+                            <td>
+                              Not Run
+                            </td>
+                          </xsl:if>
+                        </xsl:when>
+                        <xsl:otherwise>
+                          <td>
+                          </td>
+                        </xsl:otherwise>
+                      </xsl:choose>
+                      <td>
+                        <xsl:value-of select=".//result_info/stdout"/>
+                        <xsl:if test=".//result_info/stdout = ''">
+                          N/A
+                        </xsl:if>
+                      </td>
+                    </tr>
+                  </xsl:for-each>
+                </xsl:for-each>
+              </table>
+            </xsl:for-each>
+          </div>
+        </div>
+        <div id="goTopBtn">
+          <img border="0" src="./back_top.png"/>
+        </div>
+        <script type="text/javascript" src="application.js"/>
+        <script language="javascript" type="text/javascript">
+          $(document).ready(function(){
+            goTopEx();
+          });
+        </script>
+      </body>
+    </html>
+  </xsl:template>
+  <xsl:template name="br-replace">
+    <xsl:param name="word"/>
+    <xsl:variable name="cr">
+      <xsl:text>
+      </xsl:text>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="contains($word,$cr)">
+        <xsl:value-of select="substring-before($word,$cr)"/>
+        <br/>
+        <xsl:call-template name="br-replace">
+          <xsl:with-param name="word" select="substring-after($word,$cr)"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$word"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/common/tct-geoallow-w3c-tests/tests.css b/common/tct-geoallow-w3c-tests/tests.css
new file mode 100755 (executable)
index 0000000..c2ba69b
--- /dev/null
@@ -0,0 +1,132 @@
+@charset "UTF-8";\r
+/* CSS Document */\r
+#testcasepage div,\r
+#testcasepage h1,\r
+#testcasepage p,\r
+#testcasepage table,\r
+#testcasepage tr,\r
+#testcasepage th,\r
+#testcasepage td {\r
+  margin: 0;\r
+  padding: 0;\r
+  border: 0;\r
+  font-weight: inherit;\r
+  font-style: inherit;\r
+  font-size: 0.96em;\r
+  font-family: arial;\r
+  vertical-align: baseline;\r
+}\r
+\r
+#testcasepage p {\r
+  text-align: left;\r
+}\r
+\r
+#suite_title {\r
+  text-align: left;\r
+}\r
+\r
+#btc {\r
+  text-align: right;\r
+}\r
+\r
+#testcasepage table {\r
+  border-collapse: separate;\r
+  border-spacing: 0;\r
+  margin-bottom: 1.4em;\r
+  vertical-align: middle;\r
+}\r
+\r
+#testcasepage th,\r
+#testcasepage td {\r
+  text-align: left;\r
+  font-weight: normal;\r
+  padding: 4px 10px 4px 5px;\r
+  vertical-align: middle;\r
+}\r
+\r
+#cases table {\r
+  width: 101%;\r
+}\r
+\r
+#fail_cases table {\r
+  width: 101%;\r
+}\r
+\r
+#title table {\r
+  width: 101%;\r
+}\r
+\r
+#device table {\r
+  width: 50%;\r
+}\r
+\r
+#summary table {\r
+  width: 50%;\r
+}\r
+\r
+#testcasepage th {\r
+  border-bottom: 1px solid #000;\r
+  background-color: #AAAAAA;\r
+  border-left: 1px solid #000;\r
+  border-top: 1px solid #000;\r
+  color: #000;\r
+  font-weight: bold;\r
+  vertical-align: bottom;\r
+}\r
+\r
+#testcasepage th:last-child,\r
+#testcasepage td:last-child {\r
+  border-right: 1px solid #000;\r
+}\r
+\r
+#testcasepage td {\r
+  border-left: 1px solid;\r
+  font-weight: normal;\r
+  border-bottom: 1px solid;\r
+}\r
+\r
+#testcasepage td.yellow_rate {\r
+  background-color: #ffcc00;\r
+}\r
+\r
+#testcasepage td.green_rate {\r
+  background-color: #33cc33;\r
+}\r
+\r
+#testcasepage td.dgreen_rate {\r
+  background-color: #339933;\r
+}\r
+\r
+#testcasepage td.red_rate {\r
+  background-color: #FF3333;\r
+}\r
+\r
+#title table,\r
+#title tr,\r
+#title td {\r
+  border-left: none;\r
+  border-bottom: none;\r
+  text-align: center;\r
+}\r
+\r
+#title td:last-child {\r
+  border-right: none;\r
+}\r
+\r
+#testcasepage h1 {\r
+  font-size: 2em;\r
+  font-family: Arial, sans-serif;\r
+  font-weight: bold;\r
+  line-height: 1;\r
+  color: #000;\r
+  margin-bottom: 0.75em;\r
+  padding-top: 0.25em;\r
+  font-weight: bold;\r
+}\r
+\r
+#goTopBtn {\r
+  right: 0px;\r
+  bottom: 0px;\r
+  position: fixed; +position: absolute;\r
+  top: expression(parseInt(document.body.scrollTop) + document.body.clientHeight - 40);\r
+}\r
diff --git a/common/tct-geoallow-w3c-tests/tests.full.xml b/common/tct-geoallow-w3c-tests/tests.full.xml
new file mode 100755 (executable)
index 0000000..ee72387
--- /dev/null
@@ -0,0 +1,2639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl"  href="./testcase.xsl"?>
+<test_definition>
+  <suite name="tct-geoallow-w3c-tests" category="W3C/HTML5 APIs">
+    <set name="Geoallow" type="js">
+      <capabilities>
+        <capability name="http://tizen.org/feature/location"/>
+      </capabilities>
+      <testcase purpose="Check if the accuracy of interface Coordinates is comparison" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_accuracy">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="accuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the accuracy attribute of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_accuracy_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="accuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the accuracy value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_accuracy_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="accuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the accuracy value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_accuracy_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="accuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the accuracy value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_accuracy_attribute_value_default">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_value_default.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="accuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitude value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitude_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitude value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_altitude_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitude value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitude_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitude value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitude_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitudeAccuracy value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitudeAccuracy_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitudeAccuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitudeAccuracy value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_altitudeAccuracy_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitudeAccuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitudeAccuracy value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitudeAccuracy_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitudeAccuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the altitudeAccuracy value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_altitudeAccuracy_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="altitudeAccuracy" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the heading value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_heading_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="heading" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the heading value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_heading_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="heading" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the heading value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_heading_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="heading" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the heading value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_heading_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="heading" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the latitude value of interface Coordinates is not NaN" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_latitude">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="latitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the latitude value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_latitude_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="latitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the latitude value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_latitude_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="latitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the latitude value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_latitude_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="latitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the latitude value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_latitude_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="latitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the longitude value of interface Coordinates is not NaN" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_longitude">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the longitude value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_longitude_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the longitude value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_longitude_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the longitude value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_longitude_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the longitude value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_longitude_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check the return type of longitude of interface Coordinates" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_longitude_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="longitude" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the speed value of interface Coordinates is not NaN" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_speed">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="speed" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the speed value of interface Coordinates is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_speed_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="speed" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the speed value of interface Coordinates exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Coordinates_speed_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="speed" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the speed value of interface Coordinates is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_speed_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="speed" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the speed value of interface Coordinates is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Coordinates_speed_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="speed" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to empty" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_empty">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_empty.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The clearWatch() method takes one argument. When called, it must first check the value of the given watchId argument. If this value does not correspond to any previously started watch process, then the method must return immediately without taking any further action. Otherwise, the watch process identified by the watchId argument must be immediately stopped and no further callbacks must be invoked.</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter is not argument" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_no_argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_no_argument.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method clearWatch value of interface Geolocation can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method clearWatch value of interface Geolocation can be set to zero" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_set_zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_zero.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_with_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_with_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_clearWatch_watchId_with_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="clearWatch" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the second parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_errorCallback_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the second and third parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_errorCallback_null_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 0,timeout is set to 0,enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition of interface Geolocation, timeout is set to 0,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0,timeout is set to 0 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0,timeout is set to 60000 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0,timeout is set to 60000 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" id="Geolocation_getCurrentPosition_method_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_method_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the third parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition of interface Geolocation,timeout can be set to Neg" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check the attribute code of interface PositionError's return value" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute position of interface Geolocation returns successfully" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation returns successfully" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_successCallback">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the first parameter can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the first third parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_null_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_null_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 2000,timeout is set to 60000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,and MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 200000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 600000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can not be called if Geolocation,MaximumAge is set to 600000, timeout is set to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 700000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 700000, timeout is set to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute maximumAge of interface PositionOptions can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute position of interface Geolocation does not return null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can not be called if Geolocation,MaximumAge is set to Infinity, timeout is set to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to -2" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute maximumAge of interface PositionOptions can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute maximumAge of interface PositionOptions can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute maximumAge of interface PositionOptions can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute position of interface Geolocation is not null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition of interface Geolocation,timeout can be set to 2000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_timeout_2000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_2000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timeout of interface PositionOptions can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timeout of interface PositionOptions can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timeout of interface PositionOptions can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timeout of interface PositionOptions can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition of interface Geolocation,enableHighAccuracy can be set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition of interface Geolocation,enableHighAccuracy can be set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the successCallback of geolocation.getCurrentPosition() return position with correct argument." type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_successCallback_position">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if successCallback of geolocation.getCurrentPosition()  can return position without passing argument to it." type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_successCallback_position_no_argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_no_argument.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of successCallback of the geolocation.getCurrentPosition() method is object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_successCallback_position_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.getCurrentPosition() method of the first parameter is set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to empty" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_with_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_errorCallback_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to no argument" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Geolocation_getCurrentPosition_errorCallback_no_argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_no_argument.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_errorCallback_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_with_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_with_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_getCurrentPosition_successCallback_with_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="getCurrentPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the const attribute PERMISSION_DENIED of interface PositionError is Exist ,timeout is set to 10,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P1" id="Geolocation_PositionError_PERMISSION_DENIED_constExist">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_PERMISSION_DENIED_constExist.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="PERMISSION_DENIED" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the const attribute POSITION_UNAVAILABLE of interface PositionError is Exist ,timeout is set to 10,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P1" id="Geolocation_PositionError_POSITION_UNAVAILABLE_constExist">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_POSITION_UNAVAILABLE_constExist.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="POSITION_UNAVAILABLE" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the PositionError.TIMEOUT exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P1" id="Geolocation_PositionError_TIMEOUT_constExist">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_TIMEOUT_constExist.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="TIMEOUT" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of error value of interface PositionError is obejct" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_errorCallback_error_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_error_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the second parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_errorCallback_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the second third parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_errorCallback_null_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation return timeout" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_PositionOptions_timeout_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that watchPosition errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that watchPosition errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0, timeout is set to 0 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0, timeout is set to 0 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if watchPosition method set maximumAge to 500, timeout to 100 and  enableHighSpeed to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000, enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000, enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0, timeout is set to 60000 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0, timeout is set to 2000, and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000, timeout is set to 60000 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 500, timeout is set to 500 and enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the watchPosition value of interface Geolocation exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" id="Geolocation_watchPosition_method_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of method watchPosition of interface Geolocation " type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_method_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the maximumAge value of interface PositionOptions can be set to 2000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the maximumAge value of interface PositionOptions in method watchPosition can be set to Neg" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_maximumAge_Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_Neg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the third parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the watchPosition of interface Geolocation,timeout can be set to -2" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_PositionOptions_timeout_Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_Neg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the enableHighAccuracy value of interface PositionOptions can be set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the enableHighAccuracy value of interface PositionOptions can be set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the watchPosition value of interface Geolocation can be set to 60000 for timeout" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the watchPosition value of interface Geolocation return success" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_successCallback">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method with parameter of successCallback can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the first third parameters parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_null_options_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_null_options_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000 and timeout is set to 60000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000 and timeout is set to 60000,enableHighAccuracy is set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that errorCallback can not be called if Geolocation,and MaximumAge is set to 2000 and timeout is set to 60000,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the first parameter set a" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the first parameter set empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_with_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_errorCallback_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to no argument" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="24" id="Geolocation_watchPosition_errorCallback_no_argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_no_argument.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_errorCallback_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the geolocation.watchPosition() method of the first parameter can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_with_first_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_first_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_successCallback_with_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation return watchId before any callbacks" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_return_before_callbacks">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_before_callbacks.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of method watchPosition of interface Geolocation is object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_set_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the method watchPosition value of interface Geolocation can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_watchId_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement>The watchPosition() takes one, two or three arguments. When called, it must immediately return a long value that uniquely identifies a watch operation and then asynchronously start the watch operation</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that watchPosition should be triggered if timeout is 0 and maximumAge is 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="method" element_name="watchPosition" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of geolocation of interface is NavigatorGeolocation object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="navigator_geolocation">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="geolocation" interface="NavigatorGeolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="navigator_geolocation_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="geolocation" interface="NavigatorGeolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="navigator_geolocation_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="geolocation" interface="NavigatorGeolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="navigator_geolocation_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="geolocation" interface="NavigatorGeolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#navi-geo</spec_url>
+            <spec_statement>An instance of NavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute coords of interface Position is comparison" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_coords">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute coords value of interface Position is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_coords_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute coords value of interface Position exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Position_coords_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute coords value of interface Position is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_coords_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute coords value of interface Position is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_coords_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the return type of coords of interface Position is object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_coords_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="coords" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timestamp value of interface Position exists" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" onload_delay="12" id="Position_timestamp_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timestamp value of interface Position is readonly" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_timestamp_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute timestamp value of interface Position is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_timestamp_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute code value of interface PositionError is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_code_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="code" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute code value of interface PositionError exists, timeout is set to 10, and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P1" id="PositionError_code_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="code" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute code value of interface PositionError is readonly, timeout is set to 10 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_code_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="code" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute code value of interface PositionError is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_code_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="code" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute code of interface PositionError returns 3" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_code_TIMEOUT">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_TIMEOUT.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="code" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message of interface PositionError is comparison" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="eventhandler" element_name="handleEvent" interface="PositionErrorCallback" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement>The getCurrentPosition() method takes one, two or three arguments. When called, it must immediately return and then asynchronously attempt to obtain the current location of the device</spec_statement>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message value of interface PositionError is set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_attribute_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message value of interface PositionError exists, timeout is set to 10 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P0" id="PositionError_message_attribute_exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_exists.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message value of interface PositionError is readonly, timeout is set to 10 and enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_attribute_readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_readonly.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message value of interface PositionError is set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_attribute_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if getCurrentPosition returns message of error." type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_getCurrentPosition_Err">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_Err.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if message of timeout error is set to timeout to 0 and maxAge to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_getCurrentPosition_timeOut0Age0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that message of timeout error raised if W3C geolocation set timeout to 0 and maxAge to -1, " type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_getCurrentPosition_timeOut0AgeNeg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0AgeNeg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that message of timeout error raised if W3C geolocation set timeout to -1 and maxAge to 0," type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_getCurrentPosition_timeOutNegAge0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOutNegAge0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute message of interface PositionError return type,timeout is set to 10,enableHighAccuracy is set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_return_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_return_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if watchPosition returns message of error." type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_watchPosition_Err">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_Err.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that message of timeout error raised(watchPosition) if W3C geolocation set timeout to 0 and maxAge to 0, " type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_watchPosition_timeOut0Age0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that timeout error raised if W3C geolocation set timeout to 0 and maxAge to -1" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_watchPosition_timeOut0AgeNeg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0AgeNeg.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that timeout error raised if W3C geolocation set timeout to -1 and maxAge to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_watchPosition_timeOutNegAge0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOutNegAge0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that message of timeout error raised(getCurrentPosition) if W3C geolocation set timeout to 0 and maxAge to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_message_with_getCurrentPosition_timeOut0Age0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_with_getCurrentPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="message" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if default type of PositionError.PERMISSION_DENIED is number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_PERMISSION_DENIED_Default_value">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_Default_value.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="PERMISSION_DENIED" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if return type of PositionError.PERMISSION_DENIED  is number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_PERMISSION_DENIED_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="PERMISSION_DENIED" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if default value of PositionError.POSITION_UNAVAILABLE is number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_POSITION_UNAVAILABLE_Default_value">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_Default_value.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="POSITION_UNAVAILABLE" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if return type of PositionError.POSITION_UNAVAILABLE is number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_POSITION_UNAVAILABLE_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="POSITION_UNAVAILABLE" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if default value of PositionError.TIMEOUT is three" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_TIMEOUT_Default_value">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_Default_value.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="TIMEOUT" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if return type of PositionError.TIMEOUT is number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionError_TIMEOUT_type">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_type.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="TIMEOUT" interface="PositionError" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-error</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to empty string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_empty_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_empty_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to false" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to null" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_set_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_set_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_set_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to true" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to null " type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_with_null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_null.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to number" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_with_number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_number.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to string" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_enableHighAccuracy_with_string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_string.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="enableHighAccuracy" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 0 in getCurrentPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 1000 in getCurrentPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 60000 in getCurrentPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_timeout_getCurrentPosition_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 0 in watchPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 1000 in watchPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" id="PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if the Navigator.PositionOptions is set timeout to 60000 in watchPosition method" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="PositionOptions_timeout_watchPosition_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timeout" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position-options</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that will get Position.timestamp value if set timeout to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_timestamp_timeout_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that will get Position.timestamp value if set timeout to 100" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_timestamp_timeout_100">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_100.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check that will get Position.timestamp value if set timeout to 60000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P2" onload_delay="12" id="Position_timestamp_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion element_type="attribute" element_name="timestamp" interface="Position" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#position</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if getCurrentPosition() supports cached position object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Geolocation_getCurrentPosition_cached_position">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_cached_position.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if example of a 'one-shot' position request works" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Geolocation_getCurrentPosition_example_one_short">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_example_one_short.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if getCurrentPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Geolocation_getCurrentPosition_operation_completed">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_operation_completed.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if getCurrentPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="Geolocation_getCurrentPosition_timer_timeout">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_timer_timeout.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if watchPosition() supports cached position object" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="24" id="Geolocation_watchPosition_cached_position">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_cached_position.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if example of requesting repeated position updates works" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="24" id="Geolocation_watchPosition_example_repeated_position">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_example_repeated_position.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if watchPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="24" id="Geolocation_watchPosition_operation_completed">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_operation_completed.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if watchPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="Geolocation_watchPosition_timer_timeout">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_timer_timeout.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if will get Coordinates attribute return value when set timeout to 0" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Coordinates_attribute_timeout_0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_0.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if will get Coordinates attribute return value when set timeout to 100" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Coordinates_attribute_timeout_100">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_100.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if will get Coordinates attribute return value when set timeout to 60000" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" onload_delay="12" id="Coordinates_attribute_timeout_60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_60000.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Coordinates" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#coordinates</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if success callback is called or error callback is called with correct code" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" priority="P3" id="errorcallback_POSITION_UNAVAILABLE">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00002</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#security</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if getCurrentPosition returns synchronously before any callbacks are invoked" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" priority="P3" id="getCurrentPosition_return_synchronously">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00031</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation_interface</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Check if watchPosition returns synchronously before any callbacks are invoked" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" priority="P3" id="watchPosition_return_synchronously">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <post_condition/>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00062</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/2012/PR-geolocation-API-20120510/#geolocation_interface</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="PositionOptions tests" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="PositionOptions" subcase="7">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="PositionOptions" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/geolocation-API/#position_options_interface</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="Test that calling clearWatch with invalid watch IDs does not cause an exception" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="clearWatch_TypeError">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/clearWatch_TypeError.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/geolocation-API/#clear-watch</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="getCurrentPosition tests" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="getCurrentPosition_IDL" subcase="6">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/geolocation-API</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="getCurrentPosition TypeError tests" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="getCurrentPosition_TypeError" subcase="6">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/geolocation-API</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+      <testcase purpose="watchPosition TypeError tests" type="compliance" status="approved" component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" priority="P3" id="watchPosition_TypeError" subcase="6">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html</test_script_entry>
+        </description>
+        <specs>
+          <spec>
+            <spec_assertion usage="true" interface="Geolocation" specification="Geolocation API Specification" section="Location" category="Tizen W3C API Specifications"/>
+            <spec_url>http://www.w3.org/TR/geolocation-API</spec_url>
+            <spec_statement/>
+          </spec>
+        </specs>
+      </testcase>
+    </set>
+  </suite>
+</test_definition>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/tests.xml b/common/tct-geoallow-w3c-tests/tests.xml
new file mode 100755 (executable)
index 0000000..b096ed7
--- /dev/null
@@ -0,0 +1,1217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <?xml-stylesheet type="text/xsl" href="./testcase.xsl"?>
+<test_definition>
+  <suite name="tct-geoallow-w3c-tests" category="W3C/HTML5 APIs">
+    <set name="Geoallow" type="js">
+      <capabilities>
+        <capability name="http://tizen.org/feature/location"/>
+      </capabilities>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_accuracy" onload_delay="12" priority="P2" purpose="Check if the accuracy of interface Coordinates is comparison">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_accuracy_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the accuracy attribute of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_accuracy_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the accuracy value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_accuracy_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the accuracy value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_accuracy_attribute_value_default" onload_delay="12" priority="P2" purpose="Check if the accuracy value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_accuracy_attribute_value_default.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitude_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the altitude value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitude_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the altitude value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitude_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the altitude value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitude_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the altitude value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitude_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitudeAccuracy_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the altitudeAccuracy value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitudeAccuracy_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the altitudeAccuracy value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitudeAccuracy_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the altitudeAccuracy value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_altitudeAccuracy_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the altitudeAccuracy value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_altitudeAccuracy_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_heading_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the heading value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_heading_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the heading value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_heading_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the heading value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_heading_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the heading value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_heading_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_latitude" onload_delay="12" priority="P2" purpose="Check if the latitude value of interface Coordinates is not NaN">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_latitude_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the latitude value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_latitude_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the latitude value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_latitude_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the latitude value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_latitude_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the latitude value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_latitude_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude" onload_delay="12" priority="P2" purpose="Check if the longitude value of interface Coordinates is not NaN">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the longitude value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the longitude value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the longitude value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the longitude value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_longitude_return_type" onload_delay="12" priority="P2" purpose="Check the return type of longitude of interface Coordinates">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_longitude_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_speed" onload_delay="12" priority="P2" purpose="Check if the speed value of interface Coordinates is not NaN">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_speed_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the speed value of interface Coordinates is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_speed_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the speed value of interface Coordinates exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_speed_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the speed value of interface Coordinates is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_speed_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the speed value of interface Coordinates is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_speed_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_empty" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to empty">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_empty.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_no_argument" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter is not argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_no_argument.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_null" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_set_null" priority="P2" purpose="Check if the method clearWatch value of interface Geolocation can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_set_zero" priority="P2" purpose="Check if the method clearWatch value of interface Geolocation can be set to zero">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_set_zero.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_with_empty_string" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_with_number" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_clearWatch_watchId_with_string" priority="P2" purpose="Check if the geolocation.clearWatch() method of the first parameter can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_clearWatch_watchId_with_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_errorCallback_null" onload_delay="12" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the second parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_errorCallback_null_options_null" onload_delay="12" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the second and third parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_null_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false" priority="P2" purpose="Check that errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false" priority="P2" purpose="Check if the method getCurrentPosition of interface Geolocation,MaximumAge is set to 0,timeout is set to 0,enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true" priority="P2" purpose="Check if the method getCurrentPosition of interface Geolocation, timeout is set to 0,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true" priority="P2" purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0,timeout is set to 0 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true" onload_delay="12" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false" onload_delay="12" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0,timeout is set to 60000 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true" onload_delay="12" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0,timeout is set to 60000 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_method_exists" priority="P0" purpose="Check if the method getCurrentPosition value of interface Geolocation exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_method_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_options_null" onload_delay="12" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the third parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_Neg" priority="P2" purpose="Check if the method getCurrentPosition of interface Geolocation,timeout can be set to Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0" priority="P2" purpose="Check the attribute code of interface PositionError's return value">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_Neg_maximumAge_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true" priority="P2" purpose="Check if the attribute position of interface Geolocation returns successfully">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_0_timeout_10_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback" onload_delay="12" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation returns successfully">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_empty_string" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the first parameter can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_null_options_null" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the first third parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_null_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 2000,timeout is set to 60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,and MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 2000,timeout is set to 60000,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 200000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_200000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 600000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero" priority="P2" purpose="Check that successCallback can not be called if Geolocation,MaximumAge is set to 600000, timeout is set to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_600000_timeout_zero.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 700000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to 700000, timeout is set to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_700000_timeout_zero.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string" onload_delay="12" priority="P2" purpose="Check if the attribute maximumAge of interface PositionOptions can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity" onload_delay="12" priority="P2" purpose="Check if the attribute position of interface Geolocation does not return null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero" priority="P2" purpose="Check that successCallback can not be called if Geolocation,MaximumAge is set to Infinity, timeout is set to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Infinity_timeout_zero.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg" onload_delay="12" priority="P2" purpose="Check that successCallback can be called if Geolocation,MaximumAge is set to -2">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_Neg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null" onload_delay="12" priority="P2" purpose="Check if the attribute maximumAge of interface PositionOptions can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number" onload_delay="12" priority="P2" purpose="Check if the attribute maximumAge of interface PositionOptions can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string" onload_delay="12" priority="P2" purpose="Check if the attribute maximumAge of interface PositionOptions can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero" onload_delay="12" priority="P2" purpose="Check if the attribute position of interface Geolocation is not null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_maximumAge_zero.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_2000" onload_delay="12" priority="P2" purpose="Check if the method watchPosition of interface Geolocation,timeout can be set to 2000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_2000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string" priority="P2" purpose="Check if the attribute timeout of interface PositionOptions can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_null" priority="P2" purpose="Check if the attribute timeout of interface PositionOptions can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_number" priority="P2" purpose="Check if the attribute timeout of interface PositionOptions can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_timeout_set_string" priority="P2" purpose="Check if the attribute timeout of interface PositionOptions can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_timeout_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false" onload_delay="12" priority="P2" purpose="Check if the method watchPosition of interface Geolocation,enableHighAccuracy can be set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true" onload_delay="12" priority="P2" purpose="Check if the method watchPosition of interface Geolocation,enableHighAccuracy can be set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_PositionOptions_with_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_position" onload_delay="12" priority="P2" purpose="Check if the successCallback of geolocation.getCurrentPosition() return position with correct argument.">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_position_no_argument" onload_delay="12" priority="P2" purpose="Check if successCallback of geolocation.getCurrentPosition()  can return position without passing argument to it.">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_no_argument.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_position_return_type" onload_delay="12" priority="P2" purpose="Check if the return type of successCallback of the geolocation.getCurrentPosition() method is object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_position_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_set_string" priority="P2" purpose="Check if the geolocation.getCurrentPosition() method of the first parameter is set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_with_empty_string" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to empty">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_errorCallback_empty_string" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_errorCallback_no_argument" onload_delay="12" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to no argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_no_argument.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_errorCallback_string" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,errorCallback is set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_errorCallback_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_with_null" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_with_number" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_successCallback_with_string" priority="P2" purpose="Check if the method getCurrentPosition value of interface Geolocation,successCallback is set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_successCallback_with_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_PositionError_PERMISSION_DENIED_constExist" priority="P1" purpose="Check if the const attribute PERMISSION_DENIED of interface PositionError is Exist ,timeout is set to 10,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_PERMISSION_DENIED_constExist.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_PositionError_POSITION_UNAVAILABLE_constExist" priority="P1" purpose="Check if the const attribute POSITION_UNAVAILABLE of interface PositionError is Exist ,timeout is set to 10,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_POSITION_UNAVAILABLE_constExist.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_PositionError_TIMEOUT_constExist" priority="P1" purpose="Check if the PositionError.TIMEOUT exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_PositionError_TIMEOUT_constExist.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_error_return_type" priority="P2" purpose="Check if the return type of error value of interface PositionError is obejct">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_error_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_null" onload_delay="24" priority="P2" purpose="Check if the geolocation.watchPosition() method of the second parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_null_options_null" priority="P2" purpose="Check if the geolocation.watchPosition() method of the second third parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_null_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0" priority="P2" purpose="Check that errorCallback can be called if Geolocation return timeout">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that watchPosition errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that watchPosition errorCallback can be called if Geolocation,timeout is set to 0 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0, timeout is set to 0 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 0, timeout is set to 0 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can be called if watchPosition method set maximumAge to 500, timeout to 100 and  enableHighSpeed to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_100_maximumAge_500_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000, enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,timeout is set to 60000, enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0, timeout is set to 60000 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 0, timeout is set to 2000, and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_0_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000, timeout is set to 60000 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000_maximumAge_2000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that errorCallback can be called if Geolocation,MaximumAge is set to 500, timeout is set to 500 and enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_500_maximumAge_500_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_method_exists" priority="P0" purpose="Check if the watchPosition value of interface Geolocation exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_method_return_type" onload_delay="24" priority="P2" purpose="Check if the return type of method watchPosition of interface Geolocation ">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_method_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000" onload_delay="24" priority="P2" purpose="Check if the maximumAge value of interface PositionOptions can be set to 2000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_maximumAge_Neg" onload_delay="24" priority="P2" purpose="Check if the maximumAge value of interface PositionOptions in method watchPosition can be set to Neg">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_Neg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_options_null" onload_delay="24" priority="P2" purpose="Check if the geolocation.watchPosition() method of the third parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_Neg" priority="P2" purpose="Check if the watchPosition of interface Geolocation,timeout can be set to -2">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_Neg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check if the enableHighAccuracy value of interface PositionOptions can be set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check if the enableHighAccuracy value of interface PositionOptions can be set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_60000" onload_delay="24" priority="P2" purpose="Check if the watchPosition value of interface Geolocation can be set to 60000 for timeout">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback" onload_delay="24" priority="P2" purpose="Check if the watchPosition value of interface Geolocation return success">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_empty_string" priority="P2" purpose="Check if the geolocation.watchPosition() method with parameter of successCallback can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_null_options_null" priority="P2" purpose="Check if the geolocation.watchPosition() method of the first third parameters parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_null_options_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_number" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000 and timeout is set to 60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,MaximumAge is set to 2000 and timeout is set to 60000,enableHighAccuracy is set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true" onload_delay="24" priority="P2" purpose="Check that errorCallback can not be called if Geolocation,and MaximumAge is set to 2000 and timeout is set to 60000,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_maximumAge_2000_timeout_60000_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_set_string" priority="P2" purpose="Check if the geolocation.watchPosition() method of the first parameter set a">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_string" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_with_empty_string" priority="P2" purpose="Check if the geolocation.watchPosition() method of the first parameter set empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_empty_string" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_no_argument" onload_delay="24" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to no argument">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_no_argument.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_errorCallback_string" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,errorCallback can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_errorCallback_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_with_first_null" priority="P2" purpose="Check if the geolocation.watchPosition() method of the first parameter can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_first_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_successCallback_with_null" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation,successCallback can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_successCallback_with_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_empty_string" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_return_before_callbacks" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation return watchId before any callbacks">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_before_callbacks.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_return_type" priority="P2" purpose="Check if the return type of method watchPosition of interface Geolocation is object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_set_null" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_set_number" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_watchId_set_string" priority="P2" purpose="Check if the method watchPosition value of interface Geolocation can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_watchId_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0" priority="P2" purpose="Check that watchPosition should be triggered if timeout is 0 and maximumAge is 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_PositionOptions_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="navigator_geolocation" priority="P2" purpose="Check if the return type of geolocation of interface is NavigatorGeolocation object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="navigator_geolocation_attribute_empty_string" priority="P2" purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="navigator_geolocation_attribute_readonly" priority="P2" purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="navigator_geolocation_attribute_set_null" priority="P2" purpose="Check if the attribute geolocation value of interface NavigatorGeolocation is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/navigator_geolocation_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords" onload_delay="12" priority="P2" purpose="Check if the attribute coords of interface Position is comparison">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords_attribute_empty_string" onload_delay="12" priority="P2" purpose="Check if the attribute coords value of interface Position is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the attribute coords value of interface Position exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the attribute coords value of interface Position is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the attribute coords value of interface Position is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_coords_return_type" onload_delay="12" priority="P2" purpose="Check if the return type of coords of interface Position is object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_coords_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_attribute_exists" onload_delay="12" priority="P0" purpose="Check if the attribute timestamp value of interface Position exists">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_attribute_readonly" onload_delay="12" priority="P2" purpose="Check if the attribute timestamp value of interface Position is readonly">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_attribute_set_null" onload_delay="12" priority="P2" purpose="Check if the attribute timestamp value of interface Position is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_code_attribute_empty_string" priority="P2" purpose="Check if the attribute code value of interface PositionError is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_code_attribute_exists" priority="P0" purpose="Check if the attribute code value of interface PositionError exists, timeout is set to 10, and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_code_attribute_readonly" priority="P2" purpose="Check if the attribute code value of interface PositionError is readonly, timeout is set to 10 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_code_attribute_set_null" priority="P2" purpose="Check if the attribute code value of interface PositionError is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_code_TIMEOUT" priority="P2" purpose="Check if the attribute code of interface PositionError returns 3">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_code_TIMEOUT.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message" priority="P2" purpose="Check if the attribute message of interface PositionError is comparison">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_attribute_empty_string" priority="P2" purpose="Check if the attribute message value of interface PositionError is set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_attribute_exists" priority="P0" purpose="Check if the attribute message value of interface PositionError exists, timeout is set to 10 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_exists.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_attribute_readonly" priority="P2" purpose="Check if the attribute message value of interface PositionError is readonly, timeout is set to 10 and enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_readonly.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_attribute_set_null" priority="P2" purpose="Check if the attribute message value of interface PositionError is set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_attribute_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_getCurrentPosition_Err" priority="P2" purpose="Check if getCurrentPosition returns message of error.">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_Err.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_getCurrentPosition_timeOut0Age0" priority="P2" purpose="Check if message of timeout error is set to timeout to 0 and maxAge to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_getCurrentPosition_timeOut0AgeNeg" priority="P2" purpose="Check that message of timeout error raised if W3C geolocation set timeout to 0 and maxAge to -1, ">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOut0AgeNeg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_getCurrentPosition_timeOutNegAge0" priority="P2" purpose="Check that message of timeout error raised if W3C geolocation set timeout to -1 and maxAge to 0,">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_getCurrentPosition_timeOutNegAge0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_return_type" priority="P2" purpose="Check if the attribute message of interface PositionError return type,timeout is set to 10,enableHighAccuracy is set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_return_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_watchPosition_Err" priority="P2" purpose="Check if watchPosition returns message of error.">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_Err.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_watchPosition_timeOut0Age0" priority="P2" purpose="Check that message of timeout error raised(watchPosition) if W3C geolocation set timeout to 0 and maxAge to 0, ">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_watchPosition_timeOut0AgeNeg" priority="P2" purpose="Check that timeout error raised if W3C geolocation set timeout to 0 and maxAge to -1">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOut0AgeNeg.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_watchPosition_timeOutNegAge0" priority="P2" purpose="Check that timeout error raised if W3C geolocation set timeout to -1 and maxAge to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_watchPosition_timeOutNegAge0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_message_with_getCurrentPosition_timeOut0Age0" priority="P2" purpose="Check that message of timeout error raised(getCurrentPosition) if W3C geolocation set timeout to 0 and maxAge to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_message_with_getCurrentPosition_timeOut0Age0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_PERMISSION_DENIED_Default_value" priority="P2" purpose="Check if default type of PositionError.PERMISSION_DENIED is number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_Default_value.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_PERMISSION_DENIED_type" priority="P2" purpose="Check if return type of PositionError.PERMISSION_DENIED  is number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_PERMISSION_DENIED_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_POSITION_UNAVAILABLE_Default_value" priority="P2" purpose="Check if default value of PositionError.POSITION_UNAVAILABLE is number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_Default_value.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_POSITION_UNAVAILABLE_type" priority="P2" purpose="Check if return type of PositionError.POSITION_UNAVAILABLE is number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_POSITION_UNAVAILABLE_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_TIMEOUT_Default_value" priority="P2" purpose="Check if default value of PositionError.TIMEOUT is three">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_Default_value.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionError_TIMEOUT_type" priority="P2" purpose="Check if return type of PositionError.TIMEOUT is number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionError_TIMEOUT_type.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_empty_string" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to empty string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_empty_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_false" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to false">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_false.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_set_null" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to null">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_set_number" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_set_string" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_set_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_true" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of interface PositionOptions can be set to true">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_true.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_with_null" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to null ">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_null.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_with_number" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to number">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_number.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_enableHighAccuracy_with_string" onload_delay="12" priority="P2" purpose="Check if the attribute enableHighAccuracy of Navigator.PositionOptions.enableHighAccuracy can be set to string">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_enableHighAccuracy_with_string.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 0 in getCurrentPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 1000 in getCurrentPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_0_maximumAge_1000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_getCurrentPosition_timeout_60000" onload_delay="12" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 60000 in getCurrentPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_getCurrentPosition_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 0 in watchPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 0 and maximumAge to 1000 in watchPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_0_maximumAge_1000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_timeout_watchPosition_timeout_60000" onload_delay="12" priority="P2" purpose="Check if the Navigator.PositionOptions is set timeout to 60000 in watchPosition method">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/PositionOptions_timeout_watchPosition_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_timeout_0" onload_delay="12" priority="P2" purpose="Check that will get Position.timestamp value if set timeout to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_timeout_100" onload_delay="12" priority="P2" purpose="Check that will get Position.timestamp value if set timeout to 100">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_100.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Position_timestamp_timeout_60000" onload_delay="12" priority="P2" purpose="Check that will get Position.timestamp value if set timeout to 60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Position_timestamp_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_cached_position" onload_delay="12" priority="P3" purpose="Check if getCurrentPosition() supports cached position object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_cached_position.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_example_one_short" onload_delay="12" priority="P3" purpose="Check if example of a 'one-shot' position request works">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_example_one_short.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_operation_completed" onload_delay="12" priority="P3" purpose="Check if getCurrentPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_operation_completed.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_getCurrentPosition_timer_timeout" priority="P3" purpose="Check if getCurrentPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_getCurrentPosition_timer_timeout.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_cached_position" onload_delay="24" priority="P3" purpose="Check if watchPosition() supports cached position object">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_cached_position.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_example_repeated_position" onload_delay="24" priority="P3" purpose="Check if example of requesting repeated position updates works">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_example_repeated_position.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_operation_completed" onload_delay="24" priority="P3" purpose="Check if watchPosition() invokes onPositionCallback() when the operation completes successfully before the timeout expires">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_operation_completed.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Geolocation_watchPosition_timer_timeout" priority="P3" purpose="Check if watchPosition() invokes onPositionErrorCallback() after timer fires TIMEOUT">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Geolocation_watchPosition_timer_timeout.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_attribute_timeout_0" onload_delay="12" priority="P3" purpose="Check if will get Coordinates attribute return value when set timeout to 0">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_0.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_attribute_timeout_100" onload_delay="12" priority="P3" purpose="Check if will get Coordinates attribute return value when set timeout to 100">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_100.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="Coordinates_attribute_timeout_60000" onload_delay="12" priority="P3" purpose="Check if will get Coordinates attribute return value when set timeout to 60000">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/Coordinates_attribute_timeout_60000.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" id="errorcallback_POSITION_UNAVAILABLE" priority="P3" purpose="Check if success callback is called or error callback is called with correct code">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00002</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" id="getCurrentPosition_return_synchronously" priority="P3" purpose="Check if getCurrentPosition returns synchronously before any callbacks are invoked">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00031</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="manual" id="watchPosition_return_synchronously" priority="P3" purpose="Check if watchPosition returns synchronously before any callbacks are invoked">
+        <description>
+          <pre_condition>enable GPS or connect to an available network</pre_condition>
+          <steps>
+            <step order="1">
+              <step_desc>If prompts for permission to use geolocation, please accept</step_desc>
+              <expected>Pass</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/t.html?00062</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_1" priority="P3" purpose="PositionOptions tests" onload_delay="60">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_2" priority="P3" purpose="PositionOptions tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_3" priority="P3" purpose="PositionOptions tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_4" priority="P3" purpose="PositionOptions tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_5" priority="P3" purpose="PositionOptions tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="PositionOptions_6" priority="P3" purpose="PositionOptions tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/PositionOptions.html?total_num=7&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="clearWatch_TypeError" priority="P3" purpose="Test that calling clearWatch with invalid watch IDs does not cause an exception">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/clearWatch_TypeError.html</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_1" priority="P3" purpose="getCurrentPosition tests" onload_delay="60">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_2" priority="P3" purpose="getCurrentPosition tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_3" priority="P3" purpose="getCurrentPosition tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_4" priority="P3" purpose="getCurrentPosition tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_5" priority="P3" purpose="getCurrentPosition tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_IDL_6" priority="P3" purpose="getCurrentPosition tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_IDL.html?total_num=6&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_1" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_2" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_3" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_4" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_5" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="getCurrentPosition_TypeError_6" priority="P3" purpose="getCurrentPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/getCurrentPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_1" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=1</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_2" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=2</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_3" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=3</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_4" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=4</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_5" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=5</test_script_entry>
+        </description>
+      </testcase>
+      <testcase component="W3C_HTML5 APIs/Location/Geolocation API Specification" execution_type="auto" id="watchPosition_TypeError_6" priority="P3" purpose="watchPosition TypeError tests">
+        <description>
+          <test_script_entry>/opt/tct-geoallow-w3c-tests/geoallow/w3c/watchPosition_TypeError.html?total_num=6&amp;locator_key=id&amp;value=6</test_script_entry>
+        </description>
+      </testcase>
+    </set>
+  </suite>
+</test_definition>
\ No newline at end of file
diff --git a/common/tct-geoallow-w3c-tests/webrunner/index.html b/common/tct-geoallow-w3c-tests/webrunner/index.html
new file mode 100755 (executable)
index 0000000..69cc2d6
--- /dev/null
@@ -0,0 +1,137 @@
+<!doctype html>
+<!--
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Wang, Jing <jing.j.wang@intel.com>
+
+-->
+
+<head>
+<meta name="viewport" content="width=device-width">
+<script src="jquery-1.10.2.min.js"></script>
+<style type="text/css">
+html {
+  font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;
+}
+
+body {
+  background-color: white;
+}
+
+table#browse {
+  border-collapse:collapse;
+  table-layout:fixed;width:85%;
+}
+
+table#browse th:first-child,table#browse td:first-child {width:35%;}
+
+table#browse th:last-child,table#browse td:last-child {width:25%;}
+
+table#browse th {
+  padding:0;
+  padding-bottom:0.5em;
+  text-align:left;
+  border-bottom:medium solid black;
+}
+table#browse td {
+  padding:1em;
+  padding-bottom:0.5em;
+  border-bottom:thin solid black;
+}
+div#navbar{
+  box-sizing: border-box;
+  width: 99%;
+  border: 0px;
+  text-align: left;
+  background: slateblue;
+  color: white;
+}
+div#footbar{
+  width: 99%;
+  border: 0px;
+  text-align: left;
+}
+textarea#testinfo{
+  width: 99%;
+  font-size: 0.8em;
+}
+input{
+  font-size: 1.2em;
+  padding-top: 0.1em;
+  padding-bottom: 0.1em;
+}
+
+#btnPrev,#btnNext{
+  width: 8%;
+}
+#btnExit,#btnRun,#btnSave,#btnBack,#btnPass,#btnFail,#btnBlock{
+  width: 16%;
+  font-weight: bold;
+}
+
+#btnPass { color: green;}
+#btnFail { color: red;}
+#btnBlock { color: orange;}
+#labBatch{ font-size: 0.5em;}
+#textTest { width: 53%; }
+#title { font-size: 1.4em; font-weight: bold;}
+#frmTest { border: none;}
+.listhide { display: none;}
+.short{
+  padding-left: 1em;
+}
+</style>
+</head>
+
+<body>
+<div id="navbar" class="batchhide">
+  <span class="short listhide suitehide"><input type="button" id="btnBack" value="Back"/></span>
+  <span class="short listhide suitehide">
+    <input type="button" id="btnPrev" value="<"/>
+    <input type="text"  id="textTest" readonly />
+    <input type="button" id="btnNext" value=">"/>
+  </span>
+  <span class="short tchide"> <input type="button" id="btnExit" value="Exit"/></span>
+  <span id="title" class="short tchide">Open Web Test</span>
+</div>
+<div id="divSum"> </div>
+<div width="99%" class="batchhide">
+  <textarea class="listhide suitehide" id="testinfo" rows=4 disabled>
+  </textarea>
+</div>
+<div id="footbar" class="batchhide">
+  <span class="short"><input type="button"  id="btnRun" value="Run"/></span>
+  <span class="short listhide tchide"><input type="button" id="btnSave" value="Save"/></span>
+  <span class="short listhide suitehide"><input type="button" id="btnPass" value="PASS"/></span>
+  <span class="short listhide suitehide"><input type="button" id="btnFail" value="FAIL"/></span>
+  <span class="short listhide suitehide"><input type="button" id="btnBlock" value="BLOCK"/></span>
+</div>
+<iframe width="100%" id="frmTest" allowFullScreen="true" mozAllowFullScreen="true" webkitAllowFullscreen="true" src="">
+</iframe>
+<script src="testrunner.js"> </script>
+</body>
+</html>
diff --git a/common/tct-geoallow-w3c-tests/webrunner/jquery-1.10.2.min.js b/common/tct-geoallow-w3c-tests/webrunner/jquery-1.10.2.min.js
new file mode 100755 (executable)
index 0000000..da41706
--- /dev/null
@@ -0,0 +1,6 @@
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-1.10.2.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/common/tct-geoallow-w3c-tests/webrunner/testrunner.js b/common/tct-geoallow-w3c-tests/webrunner/testrunner.js
new file mode 100755 (executable)
index 0000000..a0a6704
--- /dev/null
@@ -0,0 +1,938 @@
+/*
+Copyright (c) 2013 Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of works must retain the original copyright notice, this list
+  of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the original copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors
+  may be used to endorse or promote products derived from this work without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
+AND ANY EXPRESS 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 INTEL CORPORATION 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.
+
+Authors:
+        Wang, Jing <jing.j.wang@intel.com>
+
+*/
+$(function(){
+ try {
+     // Checks if a device supports bluetooth API or not
+     var shape = tizen.systeminfo.getCapability("http://tizen.org/feature/screen.shape");
+    console.log("Shape = " + shape);
+     //alert(" Shape = " + shape);
+ } catch (error) {
+    // alert("Error name: " + error.name + ", message: " + error.message);
+    console.log("Error name: " + error.name + ", message: " + error.message);
+ }
+
+    if(shape=="circle"){
+       $('body').css('max-width', '100%');
+       $('body').css('max-height', '100%');
+       $('body').css('background-color', 'white');
+       $('body').css('margin-top', '20%');
+       $('body').css('margin-bottom', '20%');
+       $('body').css('margin-left', '20%');
+       $('body').css('margin-right', '20%');
+       }
+});
+
+var STUB_PORT = "";
+var RESOURCE_DIR;
+$.ajax({
+  url:"/tmp/TCT_CONFIG",
+  data:{},
+  async:false,
+  success:function(data){
+    var regEx = /DEVICE_SUITE_TARGET_30=(.+)/i;
+    var path = regEx.exec(data);
+    RESOURCE_DIR = path[1];
+  }
+});
+$.ajax({
+  url:RESOURCE_DIR + "/tct/portconfigure.json",
+  dataType:"json",
+  data:{},
+  async:false,
+  success:function(data){
+    STUB_PORT = data[0]["STUB_PORT"];
+  }
+});
+(function (window){
+  function TestRunner() {
+    this.start = null;
+    this.ui = null;
+    this.submitResult = function () {};
+    this.report = function (result, message) {};
+    this.doTest = function () {};
+  }
+
+  TestRunner.prototype = (function () {
+    var index = -1;
+    var Tests = [];
+    var Testsuites = {};
+    var TestsuiteSums = {};
+    var TestsetSums =  {};
+    var sum = newSummary();
+    var testContext =  newTestContext();
+    function newSummary(sum) {
+      if (typeof sum === "undefined")
+        return {"TOTAL": 0, "PASS" : 0, "FAIL" : 0, "BLOCK" : 0, "NOTRUN" : 0};
+      return {"TOTAL": sum.TOTAL, "PASS": sum.PASS, "FAIL": sum.FAIL, "BLOCK": sum.BLOCK, "NOTRUN": sum.NOTRUN};
+    }
+    function newTestContext() {
+      return {start_time: null, prev_uri: "", uri: "", sub_index: 0, onload_delay: 0};
+    }
+    function getParms () {
+      var parms = {};
+      var items = location.search.substring(1).split('&');
+      for ( var i = 0, max = items.length; i < max; i++) {
+        var pos = items[i].indexOf('=');
+        if (pos > 0) {
+          var key = items[i].substring(0, pos);
+          var val = items[i].substring(pos + 1);
+          if (!parms[key]) {
+            var rawVal = decodeURI(val);
+            if (rawVal.indexOf(',') < 0)
+              parms[key] = rawVal;
+            else
+              parms[key] = rawVal.split(',');
+          }
+        } else
+           parms[items[i]] = 1;
+      }
+      return parms;
+    }
+    return {
+      constructor: TestRunner,
+      options:  getParms(),
+      addTestsuite: function (testsuite, category) {
+        if (!category)
+          category = "default";
+        if (typeof Testsuites[category] === "undefined")
+          Testsuites[category] = [];
+        Testsuites[category].push(testsuite);
+      },
+
+      goNext: function () {
+        if (Tests.length === 0) return false;
+        if (index >= Tests.length) {
+          index = -1;
+          return false;
+        }
+        index++;
+        return true;
+      },
+
+      goPrev: function () {
+        if (Tests.length === 0) return false;
+        if (index < 0) {
+          index = Tests.length;
+          return false;
+        }
+        index--;
+        return true;
+      },
+
+      runAll: function () {
+        testContext = newTestContext();
+        VIEWFLAGS.add("batch");
+        this.ui.updateView(VIEWFLAGS.del("suite"));
+        this.testIndex(-1);
+        this.doTest();
+      },
+
+      cleanTests: function () {
+        Tests = [];
+      },
+
+      testIndex: function (ind) {
+        if (typeof ind === "undefined")
+          return index;
+        index = ind;
+      },
+
+      getTest: function (ind) {
+        if (typeof ind === "undefined")
+          ind = index;
+        return Tests[ind];
+      },
+
+      addTest: function (test) {
+        if (test instanceof Array)
+          Tests = Tests.concat(test);
+        else
+          Tests.push(test);
+      },
+
+      sumInit: function (num) {
+        if (typeof num === "undefined")
+          num = Tests.length;
+        sum.TOTAL = sum.NOTRUN = num;
+        sum.PASS = sum.FAIL = sum.BLOCK = 0;
+      },
+
+      sumUpdate: function (oldRes, newRes, set) {
+        if (oldRes !== null) {
+          sum[oldRes]--;
+          if (set !== null) TestsetSums[set][oldRes]--;
+        }
+        if (newRes !== null) {
+          sum[newRes]++;
+          if (set != null) TestsetSums[set][newRes]++;
+        }
+      },
+
+      checkResult: function (oTestDoc) {
+        var message = "";
+        if (!oTestDoc) {
+          this.report('FAIL', 'Test page crash');
+          return true;
+        }
+        // Handle sub-index test
+        if (testContext.sub_index > 0) {
+          var oRes = $(oTestDoc).find("table#results");
+          if (oRes.length == 0)
+            return false;
+          var ind = testContext.sub_index - 1;
+          var $n = $(oRes).find('tbody > tr').eq(ind);
+          if ($n.length == 0)
+            return false
+          var result = $n.children("td:eq(0)").text();
+          message = $n.children("td:eq(2)").text();
+          this.report(result.toUpperCase(), message);
+          return true;
+        }
+
+        var oPass = $(oTestDoc).find(".pass");
+        var oFail = $(oTestDoc).find(".fail");
+        // Qunit sub-cases
+        var oUnitRes = $(oTestDoc).find("ol.qunit-assert-list");
+        $(oUnitRes).find('li').each(function() {
+          message += "[assert]" + $(this).attr("class");
+          message += "[message]*" + $(this).children("span").text() + "\n";
+        });
+        // All tests pass
+        if (oPass.length > 0 && oFail.length == 0) {
+          this.report('PASS', message);
+          return true;
+        }
+        // Handle failed tests
+        if (oFail.length > 0) {
+          var oRes = $(oTestDoc).find("table#results");
+          $(oRes).find('tr.fail').each(function() {
+            message += " *" + $(this).children("td:eq(1)").text() + ": ";
+            message += $(this).children("td:eq(2)").text();
+          });
+          this.report('FAIL', message);
+          return true;
+        }
+        return false;
+      },
+
+      testInfo: function (ind) {
+        var info = "";
+        var tc = this.getTest();
+        if (!tc) return info;
+        info += "Test   : (" + (index + 1) + "/" + sum.TOTAL + ") ";
+        info += tc.test_script_entry;
+        info += "\nPurpose: " +  tc.purpose;
+        if (tc.pre_condition)
+          info += "\nPrecondition: " + tc.pre_condition;
+        if (tc.steps)
+          info += "\n" + tc.steps;
+        return info;
+      },
+
+      getTestCaseUrl: function () {
+        function getUriField(uri, param) {
+          var querys = uri.split("?")
+          if (querys.length <= 1)
+            return "";
+          uri = querys[1];
+          var start = uri.indexOf(param);
+          if (start == -1)
+            return "";
+          start += param.length + 1;
+          var end = uri.indexOf("&", start);
+          if (end == -1)
+            return uri.substring(start);
+          return uri.substring(start, end);
+        }
+        var tc = this.getTest();
+        if (!tc) return null;
+        var delay = tc.onload_delay;
+        if (delay)
+          testContext.onload_delay = parseInt(delay) * 1000;
+        else
+          testContext.onload_delay = 5000;
+
+        var uri = tc.test_script_entry;
+        if (typeof this.options.testprefix !== "undefined") {
+          var pos = uri.indexOf('http://');
+          if (pos !== 0)
+            uri = this.options.testprefix + uri
+        }
+        var val = getUriField(uri, "value");
+        if (val && tc.execution_type == "auto" && VIEWFLAGS.has("batch")) { // Need sub index in TC
+          testContext.sub_index = parseInt(val);
+          testContext.uri = uri.split("?")[0];
+          if (testContext.uri == testContext.prev_uri)
+            return "";
+        } else {
+          testContext.uri = uri;
+          testContext.sub_index = 0;
+        }
+        testContext.prev_uri = testContext.uri;
+        testContext.start_time = new Date();
+        return testContext.uri;
+      },
+
+      loadReady: function () {
+        if (!VIEWFLAGS.has("batch"))
+          return;
+        if (!this.ui.testComplete()){
+          if (testContext.onload_delay > 0){
+            var tval = 500;
+            var self = this;
+            setTimeout(function() {self.loadReady();}, tval);
+            testContext.onload_delay -= tval;
+            return
+          }
+          this.report("BLOCK", "Timeout");
+        }
+        this.doTest();
+      },
+
+      getListSum: function () {
+        var sumdata = "";
+        sumdata += "<p><table id='browse'><tr><th>Testsuite</th>";
+        sumdata += "<th>Total</th><th>Pass</th><th>Fail</th><th>Block</th></tr>";
+        $.each(TestsuiteSums, function (key, val){
+          sumdata += "<tr><td>" + key+ "</td>";
+          sumdata += "<td style='color:black;'>" + val.TOTAL + "</td>";
+          sumdata += "<td style='color:green;'>" + val.PASS + "</td>";
+          sumdata += "<td style='color:red;'>" + val.FAIL + "</td>";
+          sumdata += "<td style='color:orange;'>" + val.BLOCK + "</td></tr>";
+        });
+        sumdata += "</table>";
+        return sumdata;
+      },
+
+      getTestSum: function (include_set) {
+        var sumdata = "<section><h3>Total:" + sum.TOTAL
+            + " Pass:<span style='color:green;'>" + sum.PASS
+            + "</span> Fail:<span style='color:red;'>" + sum.FAIL
+            + "</span> Block:<span style='color:orange;'>" + sum.BLOCK
+            + "</span> Notrun:<span style='color:black;'>" + sum.NOTRUN
+            + "</span>";
+                                if (this.options.notifyInfo) {
+          sumdata += "<span style='color:slateblue;'> " + this.options.notifyInfo + "</span>";
+          this.options.notifyInfo = "";
+        }
+        sumdata += "</h3></section>";
+        if (VIEWFLAGS.has("batch")) {
+          var tc = this.getTest();
+          if (tc)  sumdata += "<h4><span style='background-color: wheat'>(#" + index + ") " + tc.id + "</span></h4>";
+        }
+        if (this.options.testsuite_name)
+          TestsuiteSums[this.options.testsuite_name] = newSummary(sum)
+        if (include_set) {
+          sumdata += "<p><table id='browse'><tr><th>Testset</th>";
+          sumdata += "<th>Total</th><th>Pass</th><th>Fail</th><th>Block</th></tr>";
+          $.each(TestsetSums, function (key, val){
+            sumdata += "<tr><td>" + key+ "</td>";
+            sumdata += "<td style='color:black;'>" + val.TOTAL + "</td>";
+            sumdata += "<td style='color:green;'>" + val.PASS + "</td>";
+            sumdata += "<td style='color:red;'>" + val.FAIL + "</td>";
+            sumdata += "<td style='color:orange;'>" + val.BLOCK + "</td></tr>";
+          });
+          sumdata += "</table>";
+        }
+        return sumdata;
+      },
+
+      getListInfo: function () {
+        function createList(category) {
+          var testList = "";
+          $.each(Testsuites[category], function (ind, val) {
+            testList += "<li><input type='checkbox' id='" + val + "'>&nbsp;<a href=''>" + val + "</a>" + "</li>";
+          });
+          return testList;
+        }
+        var data = "<html><head><style>.category{background: #cccccc;border: 1px solid #aaaaaa;} li{list-style-type: none; padding-left: 0.6em; padding-bottom:0.8em; font-size: 1.3em;}html{font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;}</style></head><body>";
+        $.each(Testsuites, function(key, val) {
+          data += "<section><h3 class='category'><input type='checkbox' id='" + key + "'>&nbsp;" + key + "</h3>"
+          data +=  createList(key) + "</section>";
+        });
+        data += "</body></html>";
+        return data;
+      },
+
+      getBrowseInfo: function () {
+        var failList = passList = blockList = notrunList = "";
+        function createTestList(tc, color, ind) {
+          var mtag = (tc.execution_type === "manual") ? "(M)" : "";
+          return "<li>" + mtag + "<a rel='" + ind + "' href='' style ='color:" + color + ";'>" + tc.id + "</a>" + "</li>";
+        }
+        TestsetSums = {};
+        $.each(Tests, function (ind, val) {
+          if (this.set === null)
+            this.set = "default";
+          if (typeof TestsetSums[this.set] === "undefined")
+            TestsetSums[this.set] = newSummary();
+          TestsetSums[this.set][this.result]++;
+          TestsetSums[this.set]["TOTAL"]++;
+          if (this.result == "FAIL")
+            failList += createTestList(this, "red", ind);
+          if (this.result == "PASS")
+            passList += createTestList(this, "green", ind);
+          if (this.result == "BLOCK")
+            blockList += createTestList(this, "orange", ind);
+          if (this.result == "NOTRUN")
+            notrunList += createTestList(this, "black", ind);
+        });
+        var data = "<html><head><style>ul li {padding-bottom:0.8em;font-size: 1.3em;}";
+        data += "html{font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;}</style></head><body>";
+        if (notrunList)
+          data += "<section><h3>Notrun</h3><ul>" + notrunList + "</ul></section>";
+        if (failList)
+          data += "<section><h3 style='color: red;'>Fail</h3><ul>" + failList + "</ul></section>";
+        if (blockList)
+          data += "<section><h3 style='color: orange;'>Block</h3><ul>" + blockList + "</ul></section>";
+        if (passList)
+          data += "<section><h3 style='color: green'>Pass</h3><ul>" + passList + "</ul></section>";
+        data += "</body></html>";
+        return data;
+      },
+
+      TestCase: function () {
+        return {
+          id: null,
+          test_script_entry: null,
+          execution_type: "manual",
+          result: "NOTRUN",
+          purpose: "",
+          set: null,
+          pre_condition: "",
+          onload_delay: 0,
+          steps: "",
+          data: null};
+      },
+
+      TestSuite: function () {
+        return {
+          id: null,
+          sum: null,
+          data: null};
+      }
+
+    };
+     }());
+  // Standalone test runner
+  var master_runner = new TestRunner();
+  master_runner.start = function (ui) {
+    function filter(xml, self) {
+      var set_ind = 0;
+      var manuals = [];
+      $(xml).find("set").each(function () {
+        var setname = $(this).attr("name");
+        if (!setname)
+          setname = "set" + set_ind;
+        $(this).find("testcase").each(function () {
+          var v = $(this).attr('execution_type');
+          if (self.options.execution_type && v != self.options.execution_type
+              && $.inArray(v, self.options.execution_type) < 0) {
+            $(this).remove();
+            return;
+          }
+          v = $(this).attr('priority');
+          if (self.options.priority && v != self.options.priority
+              && $.inArray(v, self.options.priority) < 0){
+            $(this).remove();
+            return;
+          }
+          var test = self.TestCase();
+          test.id = $(this).attr("id");
+          test.execution_type = $(this).attr("execution_type");
+          test.test_script_entry = $(this).find("test_script_entry").text();
+          test.purpose = $(this).attr("purpose");
+          test.pre_condition = $(this).find("pre_condition").text();
+          test.onload_delay = $(this).attr("onload_delay");
+          test.result = "NOTRUN";
+          test.set = setname;
+          test.data = this;
+          if (test.execution_type === "auto")
+            self.addTest(test);
+          else
+            manuals.push(test);
+        });
+        set_ind++;
+      });
+      self.addTest(manuals);
+    }
+
+    var self = this;
+    if (ui) ui.bind(self);
+    if (self.options.testsuite_name)
+      self.options.testsuite = "opt/" + self.options.testsuite_name + "/tests.xml";
+    if (!self.options.testsuite) {
+      $.getJSON(TESTLIST_FILE, function(data) {
+        for (var i = 0, imax = data.length; i < imax; i++) {
+          for (var j = 0, jmax = data[i].tests.length; j < jmax; j++)
+            self.addTestsuite(data[i].tests[j], data[i].category);
+        }
+        self.ui.list();
+        self.options.multiplex = true;
+      });
+    } else {
+      $.get(self.options.testsuite, null, function (xml) {
+        self.internal.xmldoc = xml;
+        filter(xml, self);
+        self.sumInit();
+        self.ui.browse();
+        setTimeout(function () {
+        if (self.options.autorun)
+          self.runAll();
+        }, 500);
+      }, "xml");
+    }
+  };
+
+  master_runner.doTest = function () {
+    var self = this, tc = null;
+    while (self.goNext()) {
+      tc = self.getTest();
+      if (!tc || tc.execution_type === "manual")
+        break;
+      self.ui.updateTestInfo(self.testInfo(), null, null);
+      self.ui.runTest(self.getTestCaseUrl());
+      return;
+    }
+    this.ui.updateView(VIEWFLAGS.del("batch"));
+    if (self.options.autorun) {
+      self.submitResult();
+      if (self.options.multiplex) {
+        self.ui.list();
+        return;
+      }
+      close_window();
+      return;
+    }
+    if (!tc) {
+      setTimeout(function () {self.ui.browse();}, 500);
+      return;
+    }
+    this.ui.updateTest();
+  };
+
+  master_runner.report = function (result, log) {
+    var tc = this.getTest();
+    if (!tc) return;
+    var oldresult = tc.result;
+    this.sumUpdate(oldresult, result, tc.set);
+    tc.result = result;
+    $(tc.data).find('result_info').remove();
+    $(tc.data).attr('result', result);
+    var doc = $.parseXML("<result_info><actual_result>" + result +
+           "</actual_result><stdout>" +
+           escape_html(log) + "</stdout></result_info>");
+    $(tc.data).append(doc.documentElement);
+    if (VIEWFLAGS.has("batch")) result = null;
+    this.ui.updateTestInfo(null, this.getTestSum(false), result);
+  };
+
+  master_runner.submitResult = function () {
+    var SERVER = "http://127.0.0.1:8080";
+    var contents = (new XMLSerializer()).serializeToString(this.internal.xmldoc);
+    var resfile = "tests.res.xml";
+    if (this.options.testsuite_name)
+      resfile = this.options.testsuite_name + "." + resfile;
+    $.post(SERVER + "/save_file", {filename: resfile, data: contents})
+  };
+
+  master_runner.internal = {xmldoc: null};
+
+  // Controlled test runner
+  var slave_runner = new TestRunner();
+  slave_runner.start = function (ui) {
+    function sync_session_id() {
+      $.get(SERVER + "/init_session_id?session_id="
+            + self.internal.session_id);
+    }
+    var self = this;
+    self.internal.session_id = Math.round(Math.random() * 10000);
+    sync_session_id();
+    var next_step = self.internal.get_json("ask_next_step");
+    if (!next_step || next_step.step != "continue") {
+      close_window();
+      return false;
+    }
+    ui.bind(self);
+    var f = function () {
+      var p = self.internal.get_json("check_execution_progress");
+      if (p) self.sumInit(parseInt(p.total));
+      self.doTest();
+    };
+    self.ui.updateView(VIEWFLAGS.add("batch"));
+    self.ui.updateView(VIEWFLAGS.del("suite"));
+    setTimeout(f, 1000);
+    return true;
+  };
+
+  slave_runner.doTest = function () {
+    var self = this;
+    if (self.internal.stage > 0) {
+      self.ui.updateView(VIEWFLAGS.del("batch"));
+      self.goNext();
+      self.ui.updateTest();
+      return;
+    }
+    var next_step = self.internal.get_json("ask_next_step");
+    if (next_step && next_step.step == "continue") {
+      var task = self.internal.get_json("auto_test_task");
+      if (task === null) {
+        print_error("ask_test_task", "Fail get task");
+      } else if (task.invalid === 0) {
+        print_error("ask_test_task", "Invalid session");
+      } else if (task.stop === 0) {
+        print_error("ask_test_task", "close window");
+      } else if (task.none !== 0) { //handle auto test
+        var test = self.TestCase();
+        test.id = task.case_id;
+        test.onload_delay = task.onload_delay;
+        test.test_script_entry = task.entry;
+        test.execution_type = "auto";
+        test.purpose = task.purpose;
+        test.pre_condition = task.pre_condition;
+        self.addTest(test);
+        self.goNext();
+        self.ui.updateTestInfo(self.testInfo(), null, null);
+        self.ui.runTest(self.getTestCaseUrl());
+        return;
+      } else {  //handle manual test
+        self.ui.updateView(VIEWFLAGS.del("batch"));
+        self.internal.stage = 1;
+        var mtask = self.internal.get_json("manual_cases");
+        if (mtask && mtask.none != 0) {
+          self.cleanTests();
+          for (var i = 0, max = mtask.length; i < max; i++) {
+            var test = self.TestCase();
+            test.id = mtask[i].case_id;
+            test.test_script_entry = mtask[i].entry;
+            test.purpose = mtask[i].purpose;
+            test.pre_condition = mtask[i].pre_condition;
+            test.result = "NOTRUN";
+            test.execution_type = "manual";
+            test.index = i;
+            var steps = "";
+            $(mtask[i].steps).each(function () {
+              steps += "Step-" + this.order + "\t: " + this.step_desc + "\n";
+              steps += "Expect\t: " + this.expected + "\n";
+            });
+            test.steps = steps;
+            self.addTest(test);
+          }
+          self.ui.updateTest(-1);
+          self.sumInit();
+          self.ui.browse();
+        } else
+          close_window();
+        return;
+      }
+    }
+    close_window();
+  };
+
+  slave_runner.report = function(result, log) {
+    var tc = this.getTest();
+    var oldresult;
+    if (this.internal.stage > 0) {
+      this.internal.post_json("commit_manual_result",
+        {"case_id": tc.id, "result": result});
+      oldresult = tc.result
+      tc.result = result;
+    } else {
+      this.internal.post_json("commit_result",
+        { "case_id" : tc.id,
+          "result" : result,
+          "msg" : "[Message]" + log,
+          "session_id" : this.internal.session_id});
+      oldresult = "NOTRUN";
+    }
+    this.sumUpdate(oldresult, result, null);
+    if (VIEWFLAGS.has("batch")) result = null;
+    this.ui.updateTestInfo(null, this.getTestSum(false), result);
+  };
+
+  slave_runner.submitResult = function () {
+    $.get(SERVER + "/generate_xml");
+  };
+
+  slave_runner.internal = {
+    session_id: null,
+    stage: 0,
+    get_json: function (name) {
+      var jsondata = null;
+      $.getJSON(SERVER + "/" + name + "?session_id="
+         + this.session_id, function(data) {
+           jsondata = data;});
+      return jsondata; },
+    post_json: function (name, d) {
+       $.post(SERVER + "/" + name, d, null, "json");
+    }
+  };
+
+  var i_ui = (function () {
+    var testinfo = $("#testinfo").get(0);
+    var frmTest = $("#frmTest").get(0);
+    var textTest  = $("#textTest").get(0);
+    var btnPass = $("#btnPass").get(0);
+    var btnFail = $("#btnFail").get(0);
+    var btnBlock = $("#btnBlock").get(0);
+    var btnExit = $("#btnExit").get(0);
+    var btnNext = $("#btnNext").get(0);
+    var btnPrev = $("#btnPrev").get(0);
+    var btnRun  = $("#btnRun").get(0);
+    var divSum = $("#divSum").get(0);
+    var btnBack = $("#btnBack").get(0);
+    var btnSave = $("#btnSave").get(0);
+    var runner = null;
+    var listmode = null;
+    var nextTest = function () {
+      runner.goNext();
+      selectTest();
+    };
+
+    var prevTest = function() {
+      runner.goPrev();
+      selectTest();
+    };
+
+    var selectResult = function() {
+      runner.report(this.value, "");
+    };
+
+    var selectTest = function () {
+      frmTest.src = "";
+      var tc = runner.getTest();
+      if (!tc) {
+        if (runner.testIndex() === -1)
+          textTest.value = "---Begin---";
+        else
+          textTest.value = "---End---";
+        changeColor("NOTRUN");
+        return;
+      }
+      testinfo.value = runner.testInfo();
+      $(divSum).html(runner.getTestSum(false));
+      textTest.value = ((tc.execution_type === "manual") ? "(M)" : "") + tc.id;
+      changeColor(tc.result);
+    };
+
+    function changeColor(result) {
+      if (result === "PASS")
+        $(textTest).css("backgroundColor", "lightgreen");
+      else if (result === "FAIL")
+        $(textTest).css("backgroundColor", "tomato");
+      else if (result === "BLOCK")
+        $(textTest).css("backgroundColor", "yellow");
+      else
+        $(textTest).css("backgroundColor", "white");
+    }
+
+    return {
+      bind: function (r) {
+        var self = this;
+        r.ui = self;
+        runner = r;
+        $(btnPass).on("click", selectResult);
+        $(btnFail).on("click", selectResult);
+        $(btnBlock).on("click", selectResult);
+        $(btnNext).on("click", nextTest);
+        $(btnPrev).on("click", prevTest);
+        $(btnRun).on("click",  function () {
+          if (VIEWFLAGS.has("list")) {
+            runner.options.auto_testsuites = [];
+            var tdoc = frmTest.contentWindow.document;
+            $(tdoc).find("section li>input:checked").each(function () {
+              var tname = $(this).attr("id");
+              runner.options.auto_testsuites.push(tname);
+            });
+            self.list();
+          } else if (VIEWFLAGS.has("suite")) {
+            runner.runAll();
+          } else
+            self.runTest(runner.getTestCaseUrl());
+        });
+        $(frmTest).on("load",  function () {runner.loadReady();});
+        $(btnExit).on("click", function () {
+          runner.submitResult();
+          if (runner.options.multiplex && VIEWFLAGS.has("suite"))
+            self.list();
+          else
+            close_window();
+        });
+        $(btnBack).on("click", function () {
+          frmTest.src = "";
+          setTimeout(function () {self.browse();}, 300);
+        });
+        $(btnSave).on("click", function () {
+          runner.submitResult();
+          runner.options.notifyInfo = "*Save succeed*";
+          $(divSum).html(runner.getTestSum(true));
+        });
+        frmTest.height = $(window).height();
+      },
+
+      list: function () {
+        var tdoc = frmTest.contentWindow.document;
+        $(btnExit).attr("value", "Exit");
+        tdoc.open("text/html", "replace");
+        tdoc.writeln(runner.getListInfo());
+        var self = this;
+        $(tdoc).find("section li>a").on("click", function (e) {
+          runner.options.testsuite_name = $(this).text();
+          VIEWFLAGS.del("list");
+          runner.start();
+          window.scrollTo(0, 0);
+          e.preventDefault();
+        });
+        $(tdoc).find("section h3>input[type=checkbox]").on("click", function () {
+          $boxs = $(this).parent().parent().find("li>input[type=checkbox]");
+          $boxs.prop('checked', $(this).is(':checked'));
+        });
+        $(divSum).html(runner.getListSum());
+        runner.cleanTests();
+        self.updateView(VIEWFLAGS.add("list"));
+        if (runner.options.auto_testsuites) {
+          if (runner.options.auto_testsuites.length > 0) {
+            var ts = runner.options.auto_testsuites.shift();
+            runner.options.testsuite_name = ts;
+            runner.options.autorun = true;
+            VIEWFLAGS.del("list");
+            runner.start();
+          } else
+            runner.options.autorun = false;
+        }
+      },
+
+      browse: function () {
+        var tdoc = frmTest.contentWindow.document;
+        if (runner.options.multiplex)
+          $(btnExit).attr("value", "Back");
+        tdoc.open("text/html", "replace");
+        tdoc.writeln(runner.getBrowseInfo());
+        var self = this;
+        $(tdoc).find("section ul li>a").on("click", function (e) {
+          var ind = parseInt($(this).attr("rel"));
+          self.updateView(VIEWFLAGS.del("suite"));
+          self.updateTest(ind);
+          window.scrollTo(0, 0);
+          e.preventDefault();
+        });
+        $(divSum).html(runner.getTestSum(true));
+        self.updateView(VIEWFLAGS.add("suite"));
+      },
+
+      updateTest: function (ind) {
+        if (typeof ind !== "undefined") runner.testIndex(ind);
+        selectTest();
+      },
+
+      updateView: function (flags) {
+        if (flags & VIEWFLAGS.flags.batch)
+          $(".batchhide").hide();
+        else {
+          $(".batchhide").show();
+          if (flags & VIEWFLAGS.flags.list) {
+            $(".tchide").show();
+            $(".suitehide").show();
+            $(".listhide").hide();
+          } else if (flags & VIEWFLAGS.flags.suite) {
+            $(".listhide").show();
+            $(".tchide").show();
+            $(".suitehide").hide();
+          } else {
+            $(".listhide").show();
+            $(".suitehide").show();
+            $(".tchide").hide();
+          }
+        }
+      },
+
+        testComplete: function () {
+        return runner.checkResult(frmTest.contentWindow.document);
+      },
+
+      runTest: function (uri) {
+        if (uri === null) return;
+        if (uri)
+          frmTest.src = uri;
+        else
+          runner.loadReady();
+      },
+
+      updateTestInfo: function (info, sum, result) {
+        if (info !== null)
+          testinfo.value = info;
+        if (sum !== null)
+          $(divSum).html(sum);
+        if (result !== null)
+          changeColor(result);
+      },
+     };
+  } ());
+
+  function escape_html(s) {
+    return s.replace(/\&/g, "&amp;").replace(/</g, "&lt;").replace(/"/g,
+      "&quot;").replace(/'/g, "&#39;");
+  }
+
+  function print_error(command, message) {
+    console.warn("Command -" + command + ": " + message);
+  }
+
+  function close_window() {
+    setTimeout(function () {
+      window.open('', '_self', '');
+      window.close();
+      if (window.parent != window.self) {
+        window.parent.onbeforeunload = null;
+        window.parent.close();
+      }
+    }, 1000);
+  }
+
+  function pre_init() {
+    var runner_ok = false;
+    $.get(SERVER + "/check_server", function () {
+      runner_ok = slave_runner.start(i_ui);
+    });
+    if (!runner_ok)
+      master_runner.start(i_ui);
+  }
+  var SERVER = "http://127.0.0.1:8000";
+  var TESTLIST_FILE = "testlist.json"
+  var VIEWFLAGS = { val: 0,
+    flags: {suite: 1, batch: 2, list: 4},
+    add: function (f) { this.val |= this.flags[f]; return this.val},
+    del: function (f) { this.val &= ~this.flags[f]; return this.val},
+    has: function (f) { return this.val & this.flags[f];},
+  };
+  $.ajaxSetup({ async: false});
+  $(window).on("ready", pre_init);
+})(window);