LCOV - app.info - js/src/jsapi-tests/testGetPropertyDefault.cpp

LCOV - code coverage report
| Current view: | directory - js/src/jsapi-tests - testGetPropertyDefault.cpp (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 26 | 25 | 96.2 %
| Date: | 2012-04-07 | Functions: | 9 | 7 | 77.8 %

           1                 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
           2                 :  * vim: set ts=8 sw=4 et tw=99:
           3                 :  */
           4                 :
           5                 : #include "tests.h"
           6                 :
           7                 : #define JSVAL_IS_FALSE(x) ((JSVAL_IS_BOOLEAN(x)) && !(JSVAL_TO_BOOLEAN(x)))
           8                 : #define JSVAL_IS_TRUE(x)  ((JSVAL_IS_BOOLEAN(x)) && (JSVAL_TO_BOOLEAN(x)))
           9                 :
          10                 : static JSBool
          11               2 : stringToId(JSContext *cx, const char *s, jsid *idp)
          12                 : {
          13               2 :     JSString *str = JS_NewStringCopyZ(cx, s);
          14               2 :     if (!str)
          15               0 :         return false;
          16                 :
          17               2 :     return JS_ValueToId(cx, STRING_TO_JSVAL(str), idp);
          18                 : }
          19                 :
          20               4 : BEGIN_TEST(testGetPropertyDefault_bug594060)
          21                 : {
          22                 :     {
          23                 :         // Check JS_GetPropertyDefault
          24                 :
          25               1 :         JSObject *obj = JS_NewObject(cx, NULL, NULL, NULL);
          26               1 :         CHECK(obj);
          27                 :
          28               1 :         jsval v0 = JSVAL_TRUE;
          29               1 :         CHECK(JS_SetProperty(cx, obj, "here", &v0));
          30                 :
          31                 :         jsval v1;
          32               1 :         CHECK(JS_GetPropertyDefault(cx, obj, "here", JSVAL_FALSE, &v1));
          33               1 :         CHECK(JSVAL_IS_TRUE(v1));
          34                 :
          35                 :         jsval v2;
          36               1 :         CHECK(JS_GetPropertyDefault(cx, obj, "nothere", JSVAL_FALSE, &v2));
          37               1 :         CHECK(JSVAL_IS_FALSE(v2));
          38                 :     }
          39                 :
          40                 :     {
          41                 :         // Check JS_GetPropertyByIdDefault
          42                 :
          43               1 :         JSObject *obj = JS_NewObject(cx, NULL, NULL, NULL);
          44               1 :         CHECK(obj);
          45                 :
          46                 :         jsid hereid;
          47               1 :         CHECK(stringToId(cx, "here", &hereid));
          48                 :
          49                 :         jsid nothereid;
          50               1 :         CHECK(stringToId(cx, "nothere", &nothereid));
          51                 :
          52               1 :         jsval v0 = JSVAL_TRUE;
          53               1 :         CHECK(JS_SetPropertyById(cx, obj, hereid, &v0));
          54                 :
          55                 :         jsval v1;
          56               1 :         CHECK(JS_GetPropertyByIdDefault(cx, obj, hereid, JSVAL_FALSE, &v1));
          57               1 :         CHECK(JSVAL_IS_TRUE(v1));
          58                 :
          59                 :         jsval v2;
          60               1 :         CHECK(JS_GetPropertyByIdDefault(cx, obj, nothereid, JSVAL_FALSE, &v2));
          61               1 :         CHECK(JSVAL_IS_FALSE(v2));
          62                 :     }
          63                 :
          64               1 :     return true;
          65                 : }
          66               2 : END_TEST(testGetPropertyDefault_bug594060)

Generated by: LCOV version 1.7