<head>
<title>BookmarkFolder_constructor</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<div id="log"></div>
<script>
//==== TEST: BookmarkFolder_constructor
-//==== LABEL check if the values of the attributes are equal to the arguments passed for BookmarkFolder
+//==== LABEL Check if the values of the attributes are equal to the arguments passed for BookmarkFolder
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkFolder:constructor C
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA CONSTRA CONSTRM
assert_type(tizenB, "object", "BookmarkFolder constructor test.");
assert_equals(tizenB.title, title, "title attribute test");
assert_true("parent" in tizenB, "There is no parent");
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkFolder_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
check_constructor("BookmarkFolder");
-}, "BookmarkFolder_exist");
-// Check if BookmarkFolder exists
+}, document.title);
</script>
</body>
<head>
<title>BookmarkFolder_extend</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<script type="text/javascript">
//==== TEST: BookmarkFolder_extend
-//==== LABEL test whether the BookmarkFolder object can have new attribute added
+//==== LABEL Test whether the BookmarkFolder object can have new attribute added
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkFolder:BookmarkFolder U
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA OBX
var title = "tizen", tizenB;
tizenB = new tizen.BookmarkFolder(title);
check_extensibility(tizenB);
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkFolder_parent_attribute</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.remove();
-}, "BookmarkFolder_parent_attribute");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkFolder_title_attribute</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_type(bookmarkfolder.title, "string", "Type of title is not DOMString.");
assert_equals(bookmarkfolder.title, "Testfolder", "Attribute title has invalid value");
check_readonly(bookmarkfolder, "title", "Testfolder", "string", "DummyValue");
-}, "BookmarkFolder_title_attribute");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_constructor</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<div id="log"></div>
<script>
//==== TEST: BookmarkItem_constructor
-//==== LABEL check if the values of the attributes are equal to the arguments passed
+//==== LABEL Check if the values of the attributes are equal to the arguments passed
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkItem:constructor C
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA CONSTRA CONSTRM
assert_equals(tizenB.title, title, "title attribute test");
assert_equals(tizenB.url, url, "url attribute test");
assert_true("parent" in tizenB, "There is no parent");
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
check_constructor("BookmarkItem");
-}, "BookmarkItem_exist");
-// Check if BookmarkItem exists
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_extend</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<script type="text/javascript">
//==== TEST: BookmarkItem_extend
-//==== LABEL test whether the BookmarkItem object can have new attribute added
+//==== LABEL Test whether the BookmarkItem object can have new attribute added
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkItem:BookmarkItem U
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA OBX
var title = "tizen", url = "https://www.tizen.org", tizenB;
tizenB = new tizen.BookmarkItem(title, url);
check_extensibility(tizenB);
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_parent_attribute</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.remove();
-}, "BookmarkItem_parent_attribute");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_title_attribute</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_type(bookmarkitem.title, "string", "Type of title is not DOMString.");
assert_equals(bookmarkitem.title, "Tizen", "Attribute title has invalid value");
check_readonly(bookmarkitem, "title", "Tizen", "string", "DummyValue");
-}, "BookmarkItem_title_attribute");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkItem_url_attribute</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_type(bookmarkitem.url, "string", "Type of url is not DOMString.");
assert_equals(bookmarkitem.url, "https://tizen.org/", "Attribute url has invalid value");
check_readonly(bookmarkitem, "url", "https://tizen.org/", "string", "DummyValue");
-}, "BookmarkItem_url_attribute");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManagerObject_notexist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
check_no_interface_object("BookmarkManagerObject");
-}, "BookmarkManagerObject_notexist");
-// Check if interface BookmarkManagerObject exists, it should not.
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_equals(ret[0].url, bookmark.url, "bookmark.url");
tizen.bookmark.remove();
-}, "BookmarkManager_add");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_bookmark_TypeMismatch</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.add(bookmark);
}, exceptionName + " should be thrown - given incorrect bookmark.");
}
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
assert_true("add" in tizen.bookmark, "No add method in tizen.bookmarkmanager");
check_method_exists(tizen.bookmark, "add");
-}, "BookmarkManager_add_exist");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_invalid</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.remove();
// parent not in database
- assert_throws({name: "NotFoundError"}, function () {
+ assert_throws(NOT_FOUND_EXCEPTION, function () {
tizen.bookmark.add(bookmark, folder);
}, "parent not in database");
tizen.bookmark.add(bookmark, folder);
// conflicting url
- assert_throws({name: "InvalidValuesError"}, function () {
+ assert_throws(INVALID_VALUES_EXCEPTION, function () {
tizen.bookmark.add(new tizen.BookmarkItem("newBookmark", bookmark.url));
}, "url conflict");
// conflicting folder name
- assert_throws({name: "InvalidValuesError"}, function () {
+ assert_throws(INVALID_VALUES_EXCEPTION, function () {
tizen.bookmark.add(new tizen.BookmarkFolder(folder.title));
}, "folder name conflict w/folder");
tizen.bookmark.remove();
-}, "BookmarkManager_add");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_missarg</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
//==== TEST_CRITERIA MMA
test(function () {
- assert_throws({
- name: "TypeMismatchError"
- }, function () {
+ assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
tizen.bookmark.add();
}, "TypeMismatchError should be thrown");
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_parentFolder_TypeMismatch</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
parentFolder = conversionTable[i][0];
exceptionName = conversionTable[i][1];
- assert_throws({name : exceptionName},
+ assert_throws({name: exceptionName},
function () {
tizen.bookmark.add(item, parentFolder);
}, exceptionName + " should be thrown - given incorrect parentFolder.");
}
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_parentFolder_invalid_obj</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
}, exceptionName + " should be thrown - given incorrect parentFolder argument.");
tizen.bookmark.remove();
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_add_with_parentFolder</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_equals(ret[0].parent.title, tizenB.title, "bookmark.parent.title");
tizen.bookmark.remove();
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_extend</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<script type="text/javascript">
//==== TEST: BookmarkManager_extend
-//==== LABEL test whether the BookmarkManager object can have new attribute added
+//==== LABEL Test whether the BookmarkManager object can have new attribute added
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkManager:BookmarkManager U
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA OBX
test(function () {
check_extensibility(tizen.bookmark);
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.remove();
-}, "BookmarkManager_get");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
assert_true("get" in tizen.bookmark, "No get method in tizen.bookmarkmanager");
check_method_exists(tizen.bookmark, "get");
-}, "BookmarkManager_get_exist");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_parentFolder_NotFound</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
folder = new tizen.BookmarkFolder(title);
- assert_throws({name: "NotFoundError"}, function () {
+ assert_throws(NOT_FOUND_EXCEPTION, function () {
tizen.bookmark.get(folder);
});
tizen.bookmark.remove();
-}, "BookmarkManager_get_parentFolder_NotFound");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_parentFolder_TypeMismatch</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
ret = tizen.bookmark.get(parentFolder);
}, exceptionName + " should be thrown - given incorrect parentFolder.");
}
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_parentFolder_invalid_obj</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
tizen.bookmark.remove();
tizen.bookmark.add(bookmarkFolder);
fakedParentFolder = {parent: bookmarkFolder, title: "title"};
- assert_throws({name : exceptionName},
+ assert_throws({name: exceptionName},
function () {
tizen.bookmark.get(fakedParentFolder);
}, exceptionName + " should be thrown - given incorrect parentFolder argument.");
tizen.bookmark.remove();
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_with_parentFolder</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_equals(ret[0].parent.title, tizenB.title, "Attribute parent in returned object should be null");
tizen.bookmark.remove();
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_get_with_recursive</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
assert_equals(retrievedParent.parent, null, "parent.parent");
tizen.bookmark.remove();
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_in_tizen</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
<script type="text/javascript">
//==== TEST: BookmarkManager_in_tizen
-//==== LABEL check attribute bookmark
+//==== LABEL Check attribute bookmark
//==== SPEC Tizen Web API:Social:Bookmark:BookmarkManager:BookmarkManager U
//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bookmark.html
//==== TEST_CRITERIA OBME
test(function () {
check_readonly(tizen, "bookmark", tizen.bookmark, "object", "Tizen");
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_notexist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
check_no_interface_object("BookmarkManager");
-}, "BookmarkManager_notexist");
-// Check if interface BookmarkManager exists, it should not.
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_remove</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
ret = tizen.bookmark.get();
assert_equals(ret.length, 0, "bookmarks are not removed");
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_remove_bookmarkFolder</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
ret = tizen.bookmark.get(null, true);
assert_equals(ret.length, 0, "bookmarks are not removed");
-}, "BookmarkManager_remove_bookmarkFolder");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_remove_bookmark_TypeMismatch</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
ret = tizen.bookmark.remove(bookmark);
}, exceptionName + " should be thrown - given incorrect bookmark.");
}
-});
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_remove_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
assert_true("remove" in tizen.bookmark, "No remove method in tizen.bookmarkmanager");
check_method_exists(tizen.bookmark, "remove");
-}, "BookmarkManager_remove_exist");
+}, document.title);
</script>
</body>
<head>
<title>BookmarkManager_remove_with_bookmark</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
}
ret = tizen.bookmark.get();
assert_equals(ret.length, 0, "bookmarks are not removed");
-});
+}, document.title);
</script>
</body>
<head>
<title>Tizen_bookmark_exist</title>
<meta charset="utf-8"/>
-<script type="text/javascript" src="../resources/unitcommon.js"></script>
+<script type="text/javascript" src="support/unitcommon.js"></script>
</head>
<body>
test(function () {
assert_own_property(tizen, "bookmark", "Tizen should implement BookmarkManagerObject");
assert_equals(typeof(tizen.bookmark), "object", "tizen.bookmark should be object");
-}, "Tizen_bookmark_exist");
-// Check if bookmark exists in tizen
+}, document.title);
</script>
</body>
--- /dev/null
+/*
+
+Copyright (c) 2013 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Authors:
+
+ */
+
+
+MIN_BYTE = -128;
+MAX_BYTE = 127;
+MIN_OCTET = 0;
+MAX_OCTET = 255;
+MIN_SHORT = -32768;
+MAX_SHORT = 32767;
+MIN_UNSIGNED_SHORT = 0;
+MAX_UNSIGNED_SHORT = 65535;
+MIN_LONG = -2147483648;
+MAX_LONG = 2147483647;
+MIN_UNSIGNED_LONG = 0;
+MAX_UNSIGNED_LONG = 4294967295;
+MIN_LONG_LONG = -9223372036854775808;
+MAX_LONG_LONG = 9223372036854775807;
+MIN_UNSIGNED_LONG_LONG = 0;
+MAX_UNSIGNED_LONG_LONG = 18446744073709551615;
+
+TYPE_MISMATCH_EXCEPTION = {name: 'TypeMismatchError'};
+NOT_FOUND_EXCEPTION = {name: 'NotFoundError'};
+INVALID_VALUES_EXCEPTION = {name: 'InvalidValuesError'};
+IO_EXCEPTION = {name: 'IOError'};
+SECURITY_EXCEPTION = {name: 'SecurityError'};
+
+
+(function () {
+ var head_src = document.head.innerHTML;
+ if (head_src.search(/\/testharness.js\W/) === -1) {
+ document.write('<script language="javascript" src="../resources/testharness.js"></script>\n');
+ }
+ if (head_src.search(/\/testharnessreport.js\W/) === -1) {
+ document.write('<script language="javascript" src="../resources/testharnessreport.js"></script>\n');
+ }
+})();
+
+var _registered_types = {};
+
+function _resolve_registered_type(type) {
+ while (type in _registered_types) {
+ type = _registered_types[type];
+ }
+ return type;
+}
+
+/**
+ * Method checks extra argument for none argument method.
+ * The only check is that method will not throw an exception.
+ * Example usage:
+ * checkExtraArgument(tizen.notification, "removeAll");
+ *
+ * @param object object
+ * @param methodName string - name of the method
+ */
+function checkExtraArgument(object, methodName) {
+ var extraArgument = [
+ null,
+ undefined,
+ "Tizen",
+ 1,
+ false,
+ ["one", "two"],
+ {argument: 1},
+ function () {}
+ ], i;
+
+ for (i = 0; i < extraArgument.length; i++) {
+ object[methodName](extraArgument[i]);
+ }
+}
+
+/**
+ * Method to validate conversion.
+ * Example usage:
+ * conversionTable = getTypeConversionExceptions("functionObject", true);
+ * for(i = 0; i < conversionTable.length; i++) {
+ * errorCallback = conversionTable[i][0];
+ * exceptionName = conversionTable[i][1];
+ *
+ * assert_throws({name : exceptionName},
+ * function () {
+ * tizen.systemsetting.setProperty("HOME_SCREEN",
+ * propertyValue, successCallback, errorCallback);
+ * }, exceptionName + " should be thrown - given incorrect errorCallback.");
+ * }
+ *
+ * @param conversionType
+ * @param isOptional
+ * @returns table of tables which contain value (index 0) and exceptionName (index 1)
+ *
+ */
+function getTypeConversionExceptions(conversionType, isOptional) {
+ var exceptionName = "TypeMismatchError",
+ conversionTable;
+ switch (conversionType) {
+ case "enum":
+ conversionTable = [
+ [undefined, exceptionName],
+ [null, exceptionName],
+ [0, exceptionName],
+ [true, exceptionName],
+ ["dummyInvalidEnumValue", exceptionName],
+ [{ }, exceptionName]
+ ];
+ break;
+ case "double":
+ conversionTable = [
+ [undefined, exceptionName],
+ [NaN, exceptionName],
+ [Number.POSITIVE_INFINITY, exceptionName],
+ [Number.NEGATIVE_INFINITY, exceptionName],
+ ["TIZEN", exceptionName],
+ [{ name : "TIZEN" }, exceptionName],
+ [function () { }, exceptionName]
+ ];
+ break;
+ case "object":
+ conversionTable = [
+ [true, exceptionName],
+ [false, exceptionName],
+ [NaN, exceptionName],
+ [0, exceptionName],
+ ["", exceptionName],
+ ["TIZEN", exceptionName],
+ [undefined, exceptionName]
+ ];
+ if (!isOptional) {
+ conversionTable.push([null, exceptionName]);
+ }
+ break;
+ case "functionObject":
+ conversionTable = [
+ [true, exceptionName],
+ [false, exceptionName],
+ [NaN, exceptionName],
+ [0, exceptionName],
+ ["", exceptionName],
+ ["TIZEN", exceptionName],
+ [[], exceptionName],
+ [{ }, exceptionName],
+ [undefined, exceptionName]
+ ];
+ if (!isOptional) {
+ conversionTable.push([null, exceptionName]);
+ }
+ break;
+ case "array":
+ conversionTable = [
+ [true, exceptionName],
+ [false, exceptionName],
+ [NaN, exceptionName],
+ [0, exceptionName],
+ ["", exceptionName],
+ ["TIZEN", exceptionName],
+ [{ }, exceptionName],
+ [function () { }, exceptionName],
+ [undefined, exceptionName]
+ ];
+ if (!isOptional) {
+ conversionTable.push([null, exceptionName]);
+ }
+ break;
+ case "dictionary":
+ conversionTable = [
+ [true, exceptionName],
+ [false, exceptionName],
+ [NaN, exceptionName],
+ [0, exceptionName],
+ ["", exceptionName],
+ ["TIZEN", exceptionName],
+ [undefined, exceptionName]
+ ];
+ if (!isOptional) {
+ conversionTable.push([null, exceptionName]);
+ }
+ break;
+ default:
+ assert_unreached("Fix your test. Wrong conversionType '" + conversionType + "'.");
+ };
+
+ return conversionTable;
+}
+
+
+function assert_type(obj, type, description) {
+ var org_type = type, prop_name, prop_type, prop_value;
+
+ type = _resolve_registered_type(type);
+
+ if (typeof (type) === 'string') {
+ type = type.toLowerCase();
+ switch (type) {
+ case 'object':
+ case 'string':
+ case 'number':
+ case 'function':
+ case 'boolean':
+ case 'undefined':
+ case 'xml':
+ assert_equals(typeof (obj), type, description);
+ break;
+ case 'null':
+ assert_true(obj === null, description);
+ break;
+ case 'array':
+ assert_true(Array.isArray(obj), description);
+ break;
+ case 'date':
+ assert_true(obj instanceof Date, description);
+ break;
+ case 'byte':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_BYTE, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_BYTE, description + " - value too high.");
+ assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
+ break;
+ case 'octet':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_OCTET, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_OCTET, description + " - value too high.");
+ assert_equals(obj % 1, 0, description + " - value is not an integer.");
+ break;
+ case 'short':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_SHORT, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_SHORT, description + " - value too high.");
+ assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
+ break;
+ case 'unsigned short':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_UNSIGNED_SHORT, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_UNSIGNED_SHORT, description + " - value too high.");
+ assert_equals(obj % 1, 0, description + " - value is not an integer.");
+ break;
+ case 'long':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_LONG, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_LONG, description + " - value too high.");
+ assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
+ break;
+ case 'unsigned long':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_UNSIGNED_LONG, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_UNSIGNED_LONG, description + " - value too high.");
+ assert_equals(obj % 1, 0, description + " - value is not an integer.");
+ break;
+ case 'long long':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_LONG_LONG, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_LONG_LONG, description + " - value too high.");
+ assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
+ break;
+ case 'unsigned long long':
+ assert_equals(typeof (obj), 'number', description);
+ assert_greater_than_equal(obj, MIN_UNSIGNED_LONG_LONG, description + " - value too low.");
+ assert_less_than_equal(obj, MAX_UNSIGNED_LONG_LONG, description + " - value too high.");
+ assert_equals(obj % 1, 0, description + " - value is not an integer.");
+ break;
+ default:
+ assert_unreached('Fix your test. Wrong type \'' + org_type + '\'');
+ }
+ } else if (typeof (type) === 'function') {
+ assert_true(obj instanceof type, description);
+ } else if (typeof (type) === 'object') {
+ for (prop_name in type) {
+ prop_type = type[prop_name];
+ if (prop_type === 'function') {
+ assert_inherits(obj, prop_name);
+ assert_equals(typeof obj[prop_name], prop_type, 'Object should have method ' + prop_name);
+ } else {
+ assert_own_property(obj, prop_name);
+ }
+ }
+ } else {
+ assert_unreached('Fix your test. Wrong type ' + org_type);
+ }
+}
+
+function register_type(alias, type_spec) {
+ _registered_types[alias] = type_spec;
+}
+
+/**
+ * Method to check if attribute is const.
+ * Example usage:
+ * check_const(tizen.bluetooth.deviceMinor, 'TOY_DOLL', 0x03, 'number', 0x29B);
+ *
+ * @param obj object to test which has const attribute
+ * @param attributeName attribute name.
+ * @param expectedValue expected value of provided attribute name
+ * @param expectedType expected type of provided attribute name
+ * @param valueToAssign value to assign in order to check if attribute value can be modified
+ */
+function check_const(obj, attributeName, expectedValue, expectedType, valueToAssign) {
+ var tmp;
+ if (expectedValue === valueToAssign) {
+ assert_unreached("Fix your test. The same values given for " + attributeName +
+ " in 'value' and 'valueToSet' arguments.");
+ }
+ if (typeof (attributeName) === "string") {
+ assert_true(attributeName in obj, "Name " + attributeName + " doesn't exist in provided object.");
+ assert_equals(obj[attributeName], expectedValue, "Value of " + attributeName + " is diffrent.");
+ if (typeof (expectedType) !== "undefined") {
+ if (expectedValue === null) {
+ assert_type(obj[attributeName], "object", "Type of " + attributeName + " is different.");
+ } else {
+ assert_type(obj[attributeName], expectedType, "Type of " + attributeName + " is different.");
+ }
+ } else {
+ assert_unreached("Fix your test. Wrong type " + expectedType);
+ }
+ tmp = obj[attributeName];
+ obj[attributeName] = valueToAssign;
+ assert_equals(obj[attributeName], tmp, attributeName + " can be modified.");
+ } else {
+ assert_unreached("Fix your test. Wrong type of name " + typeof (attributeName));
+ }
+}
+
+/**
+ * Method to check if attribute is readonly.
+ * Example usage:
+ * check_readonly(statusNotification, "postedTime", null, 'object', new Date());
+ *
+ * @param obj object to test which has readonly attribute
+ * @param attributeName attribute name.
+ * @param expectedValue expected value of provided attribute name
+ * @param expectedType expected type of provided attribute name
+ * @param valueToAssign value to assign in order to check if attribute value can be modified
+ */
+function check_readonly(obj, attributeName, expectedValue, expectedType, valueToAssign) {
+ check_const(obj, attributeName, expectedValue, expectedType, valueToAssign);
+}
+
+/**
+ * Method to check if attribute can be set to null.
+ * Example usage:
+ * check_not_nullable(syncInfo, "mode");
+ *
+ * @param obj object to test which has not nullable attribute
+ * @param attributeName attribute name.
+ */
+function check_not_nullable(obj, attributeName)
+{ var old_value = obj[attributeName];
+ obj[attributeName] = null;
+ assert_not_equals(obj[attributeName], null, "Attribute " + attributeName + " can be set to null.");
+ obj[attributeName] = old_value;
+}
+
+/**
+ * Method to check NoInterfaceObject
+ * Example usage:
+ * check_no_interface_object("BluetoothAdapter")
+ *
+ * @param interfaceName interface name
+ */
+function check_no_interface_object(interfaceName) {
+ assert_throws({name: "TypeError"}, function () {
+ tizen[interfaceName]();
+ },"Wrong call as a function");
+ assert_throws({name: "TypeError"}, function () {
+ new tizen[interfaceName]();
+ },"Wrong call as a new function");
+ assert_throws({name: "TypeError"}, function () {
+ ({}) instanceof tizen[interfaceName];
+ },"instanceof exception");
+ assert_equals(tizen[interfaceName], undefined, interfaceName + " is not undefined.");
+}
+
+
+/**
+ * Method to check Constructors
+ * Example usage:
+ * check_constructor("BluetoothAdapter")
+ *
+ * @param constructorName constructor name
+ */
+
+function check_constructor(constructorName) {
+ assert_true(constructorName in tizen, "No " + constructorName + " in tizen.");
+ assert_false({} instanceof tizen[constructorName],"Custom object is not instance of " + constructorName);
+ assert_throws({
+ name: "TypeError"
+ }, function () {
+ tizen[constructorName]();
+ }, "Constructor called as function.");
+}
+
+/**
+ * Method to check if given method can be overridden in a given object - (TEMPORARY REMOVED).
+ * That method also checks if given method exists in a given object.
+ * Example usage:
+ * check_method_exists(tizen.notification, "get");
+ *
+ * @param obj object with method
+ * @param methodName name of the method to check.
+ */
+function check_method_exists(obj, methodName) {
+ assert_type(obj[methodName], 'function', "Method does not exist.");
+}
+
+/**
+ * Method to check extensibility of given object.
+ * Method checks if new attribute and method can be added.
+ * Example usage:
+ * check_extensibility(tizen.notification);
+ *
+ * @param obj object to check
+ */
+function check_extensibility(obj) {
+ var dummyAttribute = "dummyAttributeValue", dummyMethodResult = "dummyMethodResultValue";
+ obj.newDummyMethod = function() {
+ return dummyMethodResult;
+ }
+ assert_equals(obj.newDummyMethod(), dummyMethodResult, "Incorrect result from added method.");
+
+ obj.newDummyAttribute = dummyAttribute;
+ assert_equals(obj.newDummyAttribute, dummyAttribute, "Incorrect result from added attribute.");
+}
+
+/**
+ * Method to check if attribute can be modify.
+ * Example usage:
+ * check_attr(downloadRequest, "fileName", default_val, "string", "file_name.html");
+ *
+ * @param obj object to test which has not readonly attribute
+ * @param attributeName attribute name.
+ * @param expectedValue expected value of provided attribute name
+ * @param expectedType expected type of provided attribute name
+ * @param valueToAssign value to assign in order to check if attribute value can be modified
+ */
+function check_attribute(obj, attributeName, expectedValue, expectedType, valueToAssign) {
+ if (expectedValue === valueToAssign) {
+ assert_unreached("Fix your test. The same values given for " + attributeName +
+ " in 'value' and 'valueToSet' arguments.");
+ }
+ if (typeof (attributeName) === "string") {
+ assert_true(attributeName in obj, "Name " + attributeName + " doesn't exist in provided object.");
+ assert_equals(obj[attributeName], expectedValue, "Value of " + attributeName + " is diffrent.");
+ if (typeof (expectedType) !== "undefined") {
+ if (expectedValue === null) {
+ assert_type(obj[attributeName], "object", "Type of " + attributeName + " is different.");
+ } else {
+ assert_type(obj[attributeName], expectedType, "Type of " + attributeName + " is different.");
+ }
+ } else {
+ assert_unreached("Fix your test. Wrong type " + expectedType);
+ }
+ obj[attributeName] = valueToAssign;
+ assert_equals(obj[attributeName], valueToAssign, attributeName + " can be modified.");
+ } else {
+ assert_unreached("Fix your test. Wrong type of name " + typeof (attributeName));
+ }
+}
+
+/**
+ * Method to check if whole array can be overwritten with an invalid value.
+ * Sample usage:
+ * check_invalid_array_assignments(message, "to", false);
+ *
+ * @param obj object which has the array as its property
+ * @param array name of the array to check
+ * @param isNullable indicates if the array can be null
+ */
+function check_invalid_array_assignments(obj, array, isNullable) {
+ var args = [undefined, true, false, NaN, 0, "TIZEN", {}, function () {}],
+ val = obj[array], i;
+
+ if (!isNullable) {
+ obj[array] = null;
+ assert_not_equals(obj[array], null, "Non-nullable array was set to null");
+ assert_type(obj[array], "array", "Non-nullable array type changed after assigning null");
+ assert_equals(obj[array].toString(), val.toString(), "Non-nullable array contents changed after assigning null");
+ }
+
+ for (i = 0 ; i < args.length ; i++) {
+ obj[array] = args[i];
+ assert_type(obj[array], "array", "Array type changed after assigning an invalid value");
+ assert_equals(obj[array].toString(), val.toString(), "Array contents changed after assigning an invalid value");
+ }
+}
+
+/**
+ * Method to check if an object can be overwritten with an invalid value.
+ * Sample usage:
+ * check_invalid_object_assignments(message, "body", false);
+ *
+ * @param parentObj object which has the 'obj' object as its property
+ * @param obj name of the object to check
+ * @param isNullable indicates if the object can be null
+ */
+function check_invalid_obj_assignments(parentObj, obj, isNullable) {
+ var args = [undefined, true, false, NaN, 0, "TIZEN", function () {}],
+ val = parentObj[obj], i;
+
+ if (!isNullable) {
+ parentObj[obj] = null;
+ assert_equals(parentObj[obj], val, "Non-nullable obj was modified after assigning null");
+ }
+
+ for (i = 0 ; i < args.length ; i++) {
+ parentObj[obj] = args[i];
+ assert_equals(parentObj[obj], val, "The object was set to " + args[i]);
+ }
+}
+
+/**
+ * Method to validate conversion for listeners.
+ * Example usage:
+ * incorrectListeners = getListenerConversionExceptions(["oninstalled", "onupdated", "onuninstalled"]);
+ * for(i = 0; i < incorrectListeners.length; i++) {
+ * packageInformationEventCallback = incorrectListeners[i][0];
+ * exceptionName = incorrectListeners[i][1];
+ * assert_throws({name : exceptionName},
+ * function () {
+ * tizen.package.setPackageInfoEventListener(packageInformationEventCallback);
+ * }, exceptionName + " should be thrown - given incorrect successCallback.");
+ * }
+ *
+ *
+ * @param callbackNames Array with names
+ * @returns {Array} table of tables which contain incorrect listener (index 0) and exceptionName (index 1)
+ *
+ */
+function getListenerConversionExceptions(callbackNames) {
+ var result = [], conversionTable, i, j, listenerName;
+ conversionTable = getTypeConversionExceptions("functionObject", false);
+
+ for (i = 0; i < callbackNames.length; i++) {
+ for (j = 0; j < conversionTable.length; j++) {
+ listenerName = {};
+ listenerName[callbackNames[i]] = conversionTable[j][0];
+ result.push([listenerName, conversionTable[j][1]]);
+ }
+ }
+
+ return result;
+}
+++ /dev/null
-/*
-
-Copyright (c) 2013 Samsung Electronics Co., Ltd.
-
-Licensed under the Apache License, Version 2.0 (the License);
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-
-Authors:
-
- */
-
-
-MIN_BYTE = -128;
-MAX_BYTE = 127;
-MIN_OCTET = 0;
-MAX_OCTET = 255;
-MIN_SHORT = -32768;
-MAX_SHORT = 32767;
-MIN_UNSIGNED_SHORT = 0;
-MAX_UNSIGNED_SHORT = 65535;
-MIN_LONG = -2147483648;
-MAX_LONG = 2147483647;
-MIN_UNSIGNED_LONG = 0;
-MAX_UNSIGNED_LONG = 4294967295;
-MIN_LONG_LONG = -9223372036854775808;
-MAX_LONG_LONG = 9223372036854775807;
-MIN_UNSIGNED_LONG_LONG = 0;
-MAX_UNSIGNED_LONG_LONG = 18446744073709551615;
-
-TYPE_MISMATCH_EXCEPTION = {name: 'TypeMismatchError'};
-NOT_FOUND_EXCEPTION = {name: 'NotFoundError'};
-INVALID_VALUES_EXCEPTION = {name: 'InvalidValuesError'};
-IO_EXCEPTION = {name: 'IOError'};
-SECURITY_EXCEPTION = {name: 'SecurityError'};
-
-
-(function () {
- var head_src = document.head.innerHTML;
- if (head_src.search(/\/testharness.js\W/) === -1) {
- document.write('<script language="javascript" src="../resources/testharness.js"></script>\n');
- }
- if (head_src.search(/\/testharnessreport.js\W/) === -1) {
- document.write('<script language="javascript" src="../resources/testharnessreport.js"></script>\n');
- }
-})();
-
-var _registered_types = {};
-
-function _resolve_registered_type(type) {
- while (type in _registered_types) {
- type = _registered_types[type];
- }
- return type;
-}
-
-/**
- * Method checks extra argument for none argument method.
- * The only check is that method will not throw an exception.
- * Example usage:
- * checkExtraArgument(tizen.notification, "removeAll");
- *
- * @param object object
- * @param methodName string - name of the method
- */
-function checkExtraArgument(object, methodName) {
- var extraArgument = [
- null,
- undefined,
- "Tizen",
- 1,
- false,
- ["one", "two"],
- {argument: 1},
- function () {}
- ], i;
-
- for (i = 0; i < extraArgument.length; i++) {
- object[methodName](extraArgument[i]);
- }
-}
-
-/**
- * Method to validate conversion.
- * Example usage:
- * conversionTable = getTypeConversionExceptions("functionObject", true);
- * for(i = 0; i < conversionTable.length; i++) {
- * errorCallback = conversionTable[i][0];
- * exceptionName = conversionTable[i][1];
- *
- * assert_throws({name : exceptionName},
- * function () {
- * tizen.systemsetting.setProperty("HOME_SCREEN",
- * propertyValue, successCallback, errorCallback);
- * }, exceptionName + " should be thrown - given incorrect errorCallback.");
- * }
- *
- * @param conversionType
- * @param isOptional
- * @returns table of tables which contain value (index 0) and exceptionName (index 1)
- *
- */
-function getTypeConversionExceptions(conversionType, isOptional) {
- var exceptionName = "TypeMismatchError",
- conversionTable;
- switch (conversionType) {
- case "enum":
- conversionTable = [
- [undefined, exceptionName],
- [null, exceptionName],
- [0, exceptionName],
- [true, exceptionName],
- ["dummyInvalidEnumValue", exceptionName],
- [{ }, exceptionName]
- ];
- break;
- case "double":
- conversionTable = [
- [undefined, exceptionName],
- [NaN, exceptionName],
- [Number.POSITIVE_INFINITY, exceptionName],
- [Number.NEGATIVE_INFINITY, exceptionName],
- ["TIZEN", exceptionName],
- [{ name : "TIZEN" }, exceptionName],
- [function () { }, exceptionName]
- ];
- break;
- case "object":
- conversionTable = [
- [true, exceptionName],
- [false, exceptionName],
- [NaN, exceptionName],
- [0, exceptionName],
- ["", exceptionName],
- ["TIZEN", exceptionName],
- [undefined, exceptionName]
- ];
- if (!isOptional) {
- conversionTable.push([null, exceptionName]);
- }
- break;
- case "functionObject":
- conversionTable = [
- [true, exceptionName],
- [false, exceptionName],
- [NaN, exceptionName],
- [0, exceptionName],
- ["", exceptionName],
- ["TIZEN", exceptionName],
- [[], exceptionName],
- [{ }, exceptionName],
- [undefined, exceptionName]
- ];
- if (!isOptional) {
- conversionTable.push([null, exceptionName]);
- }
- break;
- case "array":
- conversionTable = [
- [true, exceptionName],
- [false, exceptionName],
- [NaN, exceptionName],
- [0, exceptionName],
- ["", exceptionName],
- ["TIZEN", exceptionName],
- [{ }, exceptionName],
- [function () { }, exceptionName],
- [undefined, exceptionName]
- ];
- if (!isOptional) {
- conversionTable.push([null, exceptionName]);
- }
- break;
- case "dictionary":
- conversionTable = [
- [true, exceptionName],
- [false, exceptionName],
- [NaN, exceptionName],
- [0, exceptionName],
- ["", exceptionName],
- ["TIZEN", exceptionName],
- [undefined, exceptionName]
- ];
- if (!isOptional) {
- conversionTable.push([null, exceptionName]);
- }
- break;
- default:
- assert_unreached("Fix your test. Wrong conversionType '" + conversionType + "'.");
- };
-
- return conversionTable;
-}
-
-
-function assert_type(obj, type, description) {
- var org_type = type, prop_name, prop_type, prop_value;
-
- type = _resolve_registered_type(type);
-
- if (typeof (type) === 'string') {
- type = type.toLowerCase();
- switch (type) {
- case 'object':
- case 'string':
- case 'number':
- case 'function':
- case 'boolean':
- case 'undefined':
- case 'xml':
- assert_equals(typeof (obj), type, description);
- break;
- case 'null':
- assert_true(obj === null, description);
- break;
- case 'array':
- assert_true(Array.isArray(obj), description);
- break;
- case 'date':
- assert_true(obj instanceof Date, description);
- break;
- case 'byte':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_BYTE, description + " - value too low.");
- assert_less_than_equal(obj, MAX_BYTE, description + " - value too high.");
- assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
- break;
- case 'octet':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_OCTET, description + " - value too low.");
- assert_less_than_equal(obj, MAX_OCTET, description + " - value too high.");
- assert_equals(obj % 1, 0, description + " - value is not an integer.");
- break;
- case 'short':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_SHORT, description + " - value too low.");
- assert_less_than_equal(obj, MAX_SHORT, description + " - value too high.");
- assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
- break;
- case 'unsigned short':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_UNSIGNED_SHORT, description + " - value too low.");
- assert_less_than_equal(obj, MAX_UNSIGNED_SHORT, description + " - value too high.");
- assert_equals(obj % 1, 0, description + " - value is not an integer.");
- break;
- case 'long':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_LONG, description + " - value too low.");
- assert_less_than_equal(obj, MAX_LONG, description + " - value too high.");
- assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
- break;
- case 'unsigned long':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_UNSIGNED_LONG, description + " - value too low.");
- assert_less_than_equal(obj, MAX_UNSIGNED_LONG, description + " - value too high.");
- assert_equals(obj % 1, 0, description + " - value is not an integer.");
- break;
- case 'long long':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_LONG_LONG, description + " - value too low.");
- assert_less_than_equal(obj, MAX_LONG_LONG, description + " - value too high.");
- assert_equals(Math.abs(obj % 1), 0, description + " - value is not an integer.");
- break;
- case 'unsigned long long':
- assert_equals(typeof (obj), 'number', description);
- assert_greater_than_equal(obj, MIN_UNSIGNED_LONG_LONG, description + " - value too low.");
- assert_less_than_equal(obj, MAX_UNSIGNED_LONG_LONG, description + " - value too high.");
- assert_equals(obj % 1, 0, description + " - value is not an integer.");
- break;
- default:
- assert_unreached('Fix your test. Wrong type \'' + org_type + '\'');
- }
- } else if (typeof (type) === 'function') {
- assert_true(obj instanceof type, description);
- } else if (typeof (type) === 'object') {
- for (prop_name in type) {
- prop_type = type[prop_name];
- if (prop_type === 'function') {
- assert_inherits(obj, prop_name);
- assert_equals(typeof obj[prop_name], prop_type, 'Object should have method ' + prop_name);
- } else {
- assert_own_property(obj, prop_name);
- }
- }
- } else {
- assert_unreached('Fix your test. Wrong type ' + org_type);
- }
-}
-
-function register_type(alias, type_spec) {
- _registered_types[alias] = type_spec;
-}
-
-/**
- * Method to check if attribute is const.
- * Example usage:
- * check_const(tizen.bluetooth.deviceMinor, 'TOY_DOLL', 0x03, 'number', 0x29B);
- *
- * @param obj object to test which has const attribute
- * @param attributeName attribute name.
- * @param expectedValue expected value of provided attribute name
- * @param expectedType expected type of provided attribute name
- * @param valueToAssign value to assign in order to check if attribute value can be modified
- */
-function check_const(obj, attributeName, expectedValue, expectedType, valueToAssign) {
- var tmp;
- if (expectedValue === valueToAssign) {
- assert_unreached("Fix your test. The same values given for " + attributeName +
- " in 'value' and 'valueToSet' arguments.");
- }
- if (typeof (attributeName) === "string") {
- assert_true(attributeName in obj, "Name " + attributeName + " doesn't exist in provided object.");
- assert_equals(obj[attributeName], expectedValue, "Value of " + attributeName + " is diffrent.");
- if (typeof (expectedType) !== "undefined") {
- if (expectedValue === null) {
- assert_type(obj[attributeName], "object", "Type of " + attributeName + " is different.");
- } else {
- assert_type(obj[attributeName], expectedType, "Type of " + attributeName + " is different.");
- }
- } else {
- assert_unreached("Fix your test. Wrong type " + expectedType);
- }
- tmp = obj[attributeName];
- obj[attributeName] = valueToAssign;
- assert_equals(obj[attributeName], tmp, attributeName + " can be modified.");
- } else {
- assert_unreached("Fix your test. Wrong type of name " + typeof (attributeName));
- }
-}
-
-/**
- * Method to check if attribute is readonly.
- * Example usage:
- * check_readonly(statusNotification, "postedTime", null, 'object', new Date());
- *
- * @param obj object to test which has readonly attribute
- * @param attributeName attribute name.
- * @param expectedValue expected value of provided attribute name
- * @param expectedType expected type of provided attribute name
- * @param valueToAssign value to assign in order to check if attribute value can be modified
- */
-function check_readonly(obj, attributeName, expectedValue, expectedType, valueToAssign) {
- check_const(obj, attributeName, expectedValue, expectedType, valueToAssign);
-}
-
-/**
- * Method to check if attribute can be set to null.
- * Example usage:
- * check_not_nullable(syncInfo, "mode");
- *
- * @param obj object to test which has not nullable attribute
- * @param attributeName attribute name.
- */
-function check_not_nullable(obj, attributeName)
-{ var old_value = obj[attributeName];
- obj[attributeName] = null;
- assert_not_equals(obj[attributeName], null, "Attribute " + attributeName + " can be set to null.");
- obj[attributeName] = old_value;
-}
-
-/**
- * Method to check NoInterfaceObject
- * Example usage:
- * check_no_interface_object("BluetoothAdapter")
- *
- * @param interfaceName interface name
- */
-function check_no_interface_object(interfaceName) {
- assert_throws({name: "TypeError"}, function () {
- tizen[interfaceName]();
- },"Wrong call as a function");
- assert_throws({name: "TypeError"}, function () {
- new tizen[interfaceName]();
- },"Wrong call as a new function");
- assert_throws({name: "TypeError"}, function () {
- ({}) instanceof tizen[interfaceName];
- },"instanceof exception");
- assert_equals(tizen[interfaceName], undefined, interfaceName + " is not undefined.");
-}
-
-
-/**
- * Method to check Constructors
- * Example usage:
- * check_constructor("BluetoothAdapter")
- *
- * @param constructorName constructor name
- */
-
-function check_constructor(constructorName) {
- assert_true(constructorName in tizen, "No " + constructorName + " in tizen.");
- assert_false({} instanceof tizen[constructorName],"Custom object is not instance of " + constructorName);
- assert_throws({
- name: "TypeError"
- }, function () {
- tizen[constructorName]();
- }, "Constructor called as function.");
-}
-
-/**
- * Method to check if given method can be overridden in a given object - (TEMPORARY REMOVED).
- * That method also checks if given method exists in a given object.
- * Example usage:
- * check_method_exists(tizen.notification, "get");
- *
- * @param obj object with method
- * @param methodName name of the method to check.
- */
-function check_method_exists(obj, methodName) {
- assert_type(obj[methodName], 'function', "Method does not exist.");
-}
-
-/**
- * Method to check extensibility of given object.
- * Method checks if new attribute and method can be added.
- * Example usage:
- * check_extensibility(tizen.notification);
- *
- * @param obj object to check
- */
-function check_extensibility(obj) {
- var dummyAttribute = "dummyAttributeValue", dummyMethodResult = "dummyMethodResultValue";
- obj.newDummyMethod = function() {
- return dummyMethodResult;
- }
- assert_equals(obj.newDummyMethod(), dummyMethodResult, "Incorrect result from added method.");
-
- obj.newDummyAttribute = dummyAttribute;
- assert_equals(obj.newDummyAttribute, dummyAttribute, "Incorrect result from added attribute.");
-}
-
-/**
- * Method to check if attribute can be modify.
- * Example usage:
- * check_attr(downloadRequest, "fileName", default_val, "string", "file_name.html");
- *
- * @param obj object to test which has not readonly attribute
- * @param attributeName attribute name.
- * @param expectedValue expected value of provided attribute name
- * @param expectedType expected type of provided attribute name
- * @param valueToAssign value to assign in order to check if attribute value can be modified
- */
-function check_attribute(obj, attributeName, expectedValue, expectedType, valueToAssign) {
- if (expectedValue === valueToAssign) {
- assert_unreached("Fix your test. The same values given for " + attributeName +
- " in 'value' and 'valueToSet' arguments.");
- }
- if (typeof (attributeName) === "string") {
- assert_true(attributeName in obj, "Name " + attributeName + " doesn't exist in provided object.");
- assert_equals(obj[attributeName], expectedValue, "Value of " + attributeName + " is diffrent.");
- if (typeof (expectedType) !== "undefined") {
- if (expectedValue === null) {
- assert_type(obj[attributeName], "object", "Type of " + attributeName + " is different.");
- } else {
- assert_type(obj[attributeName], expectedType, "Type of " + attributeName + " is different.");
- }
- } else {
- assert_unreached("Fix your test. Wrong type " + expectedType);
- }
- obj[attributeName] = valueToAssign;
- assert_equals(obj[attributeName], valueToAssign, attributeName + " can be modified.");
- } else {
- assert_unreached("Fix your test. Wrong type of name " + typeof (attributeName));
- }
-}
-
-/**
- * Method to check if whole array can be overwritten with an invalid value.
- * Sample usage:
- * check_invalid_array_assignments(message, "to", false);
- *
- * @param obj object which has the array as its property
- * @param array name of the array to check
- * @param isNullable indicates if the array can be null
- */
-function check_invalid_array_assignments(obj, array, isNullable) {
- var args = [undefined, true, false, NaN, 0, "TIZEN", {}, function () {}],
- val = obj[array], i;
-
- if (!isNullable) {
- obj[array] = null;
- assert_not_equals(obj[array], null, "Non-nullable array was set to null");
- assert_type(obj[array], "array", "Non-nullable array type changed after assigning null");
- assert_equals(obj[array].toString(), val.toString(), "Non-nullable array contents changed after assigning null");
- }
-
- for (i = 0 ; i < args.length ; i++) {
- obj[array] = args[i];
- assert_type(obj[array], "array", "Array type changed after assigning an invalid value");
- assert_equals(obj[array].toString(), val.toString(), "Array contents changed after assigning an invalid value");
- }
-}
-
-/**
- * Method to check if an object can be overwritten with an invalid value.
- * Sample usage:
- * check_invalid_object_assignments(message, "body", false);
- *
- * @param parentObj object which has the 'obj' object as its property
- * @param obj name of the object to check
- * @param isNullable indicates if the object can be null
- */
-function check_invalid_obj_assignments(parentObj, obj, isNullable) {
- var args = [undefined, true, false, NaN, 0, "TIZEN", function () {}],
- val = parentObj[obj], i;
-
- if (!isNullable) {
- parentObj[obj] = null;
- assert_equals(parentObj[obj], val, "Non-nullable obj was modified after assigning null");
- }
-
- for (i = 0 ; i < args.length ; i++) {
- parentObj[obj] = args[i];
- assert_equals(parentObj[obj], val, "The object was set to " + args[i]);
- }
-}
-
-/**
- * Method to validate conversion for listeners.
- * Example usage:
- * incorrectListeners = getListenerConversionExceptions(["oninstalled", "onupdated", "onuninstalled"]);
- * for(i = 0; i < incorrectListeners.length; i++) {
- * packageInformationEventCallback = incorrectListeners[i][0];
- * exceptionName = incorrectListeners[i][1];
- * assert_throws({name : exceptionName},
- * function () {
- * tizen.package.setPackageInfoEventListener(packageInformationEventCallback);
- * }, exceptionName + " should be thrown - given incorrect successCallback.");
- * }
- *
- *
- * @param callbackNames Array with names
- * @returns {Array} table of tables which contain incorrect listener (index 0) and exceptionName (index 1)
- *
- */
-function getListenerConversionExceptions(callbackNames) {
- var result = [], conversionTable, i, j, listenerName;
- conversionTable = getTypeConversionExceptions("functionObject", false);
-
- for (i = 0; i < callbackNames.length; i++) {
- for (j = 0; j < conversionTable.length; j++) {
- listenerName = {};
- listenerName[callbackNames[i]] = conversionTable[j][0];
- result.push([listenerName, conversionTable[j][1]]);
- }
- }
-
- return result;
-}
</spec>
</specs>
</testcase>
- <testcase purpose="check attribute bookmark" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkManager_in_tizen">
+ <testcase purpose="Check attribute bookmark" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkManager_in_tizen">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkManager_in_tizen.html</test_script_entry>
</description>
</spec>
</specs>
</testcase>
- <testcase purpose="test whether the BookmarkManager object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkManager_extend">
+ <testcase purpose="Test whether the BookmarkManager object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkManager_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkManager_extend.html</test_script_entry>
</description>
</spec>
</specs>
</testcase>
- <testcase purpose="check if the values of the attributes are equal to the arguments passed" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P1" id="BookmarkItem_constructor">
+ <testcase purpose="Check if the values of the attributes are equal to the arguments passed" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P1" id="BookmarkItem_constructor">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkItem_constructor.html</test_script_entry>
</description>
</spec>
</specs>
</testcase>
- <testcase purpose="check if the values of the attributes are equal to the arguments passed for BookmarkFolder" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P1" id="BookmarkFolder_constructor">
+ <testcase purpose="Check if the values of the attributes are equal to the arguments passed for BookmarkFolder" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P1" id="BookmarkFolder_constructor">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkFolder_constructor.html</test_script_entry>
</description>
</spec>
</specs>
</testcase>
- <testcase purpose="test whether the BookmarkItem object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkItem_extend">
+ <testcase purpose="Test whether the BookmarkItem object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkItem_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkItem_extend.html</test_script_entry>
</description>
</spec>
</specs>
</testcase>
- <testcase purpose="test whether the BookmarkFolder object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkFolder_extend">
+ <testcase purpose="Test whether the BookmarkFolder object can have new attribute added" type="compliance" status="approved" component="TizenAPI/Social/Bookmark" execution_type="auto" priority="P3" id="BookmarkFolder_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkFolder_extend.html</test_script_entry>
</description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkManager_remove_bookmark_TypeMismatch.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="check attribute bookmark" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkManager_in_tizen">
+ <testcase purpose="Check attribute bookmark" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkManager_in_tizen">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkManager_in_tizen.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="test whether the BookmarkManager object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkManager_extend">
+ <testcase purpose="Test whether the BookmarkManager object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkManager_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkManager_extend.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="check if the values of the attributes are equal to the arguments passed" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkItem_constructor">
+ <testcase purpose="Check if the values of the attributes are equal to the arguments passed" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkItem_constructor">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkItem_constructor.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="check if the values of the attributes are equal to the arguments passed for BookmarkFolder" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkFolder_constructor">
+ <testcase purpose="Check if the values of the attributes are equal to the arguments passed for BookmarkFolder" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkFolder_constructor">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkFolder_constructor.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="test whether the BookmarkItem object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkItem_extend">
+ <testcase purpose="Test whether the BookmarkItem object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkItem_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkItem_extend.html</test_script_entry>
</description>
</testcase>
- <testcase purpose="test whether the BookmarkFolder object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkFolder_extend">
+ <testcase purpose="Test whether the BookmarkFolder object can have new attribute added" component="TizenAPI/Social/Bookmark" execution_type="auto" id="BookmarkFolder_extend">
<description>
<test_script_entry>/opt/tct-bookmark-tizen-tests/bookmark/BookmarkFolder_extend.html</test_script_entry>
</description>