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-06-02 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