示例#1
0
NS_IMETHODIMP
calDateTime::SetJsDate(JSContext* aCx, JS::HandleValue aDate)
{
    if (!aDate.isObject()) {
        mIsValid = false;
        return NS_OK;
    }

    JS::Rooted<JSObject*> dobj(aCx, &aDate.toObject());
    dobj = js::CheckedUnwrap(dobj);
    if (!dobj) {
        mIsValid = false;
        return NS_OK;
    }
    JSAutoCompartment ac(aCx, dobj);

    if (!JS_ObjectIsDate(aCx, dobj) || !js_DateIsValid(dobj)) {
        mIsValid = false;
        return NS_OK;
    }

    PRTime utcTime = PRTime(js_DateGetMsecSinceEpoch(dobj)) * 1000;
    mIsValid = NS_SUCCEEDED(SetNativeTime(utcTime));
    return NS_OK;
}
示例#2
0
 void test_empty_object()
 {
     // DomainObject does not contain link to DataObject
     OrmXml dobj(EMPTY_DATAOBJ);
     CPPUNIT_ASSERT(dobj.is_empty());
     // The same, using D::Holder:
     OrmXml::Holder dh(EMPTY_DATAOBJ);
     CPPUNIT_ASSERT(dh->is_empty());
 }
示例#3
0
 void test_lazy_load_failed()
 {
     Engine engine(Engine::READ_ONLY);
     setup_log(engine);
     Session session(Yb::theSchema(), &engine);
     OrmTest dobj(session, ORM_XML_ID2);
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Ghost, (int)dobj.get_data_object()->status());
     String x = dobj.a;
 }
示例#4
0
 bool Entry()
 {
     GITObjRef dobj(cam->m_gitEntry);
     // ... set the Connected property to true....
     if (!dobj.PutProp(L"Connected", true))
     {
         SetErrorMsg(ExcepMsg(dobj.Excep()));
         return true;
     }
     return false;
 }
示例#5
0
 void test_lazy_load()
 {
     Engine engine(Engine::READ_ONLY);
     setup_log(engine);
     Session session(Yb::theSchema(), &engine);
     OrmTest dobj(session, ORM_TEST_ID1);
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Ghost, (int)dobj.get_data_object()->status());
     CPPUNIT_ASSERT_EQUAL(string("item"), NARROW(dobj.a.value()));
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Sync, (int)dobj.get_data_object()->status());
     dobj.a = _T("new_item");
     CPPUNIT_ASSERT_EQUAL(string("new_item"), NARROW(dobj.a.value()));
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Dirty, (int)dobj.get_data_object()->status());
 }
示例#6
0
 void test_null_fk_relation()
 {
     Engine engine(Engine::READ_ONLY);
     setup_log(engine);
     Session session(Yb::theSchema(), &engine);
     OrmXml dobj(session, ORM_XML_ID4);
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Ghost, (int)dobj.get_data_object()->status());
     Decimal x = dobj.b;
     CPPUNIT_ASSERT_EQUAL((int)DataObject::Sync, (int)dobj.get_data_object()->status());
     // Holder is always not empty!
     CPPUNIT_ASSERT(dobj.orm_test._get_p() != NULL);
     // but:
     // DomainObject does not contain link to DataObject
     CPPUNIT_ASSERT(dobj.orm_test->is_empty());
     // Referencing DataObject does not have FK field set
     CPPUNIT_ASSERT(dobj.get(_T("ORM_TEST_ID")).is_null());
 }
示例#7
0
    void test_holder()
    {
        // a new DomainObject with a new DataObject object are created
        OrmXml::Holder dh0;
        CPPUNIT_ASSERT(dh0._get_p() != NULL);
        CPPUNIT_ASSERT(!dh0->is_empty());
        // a new DomainObject with an empty DataObject are created
        OrmXml::Holder dh1(EMPTY_DATAOBJ);
        CPPUNIT_ASSERT(dh1._get_p() != NULL);
        CPPUNIT_ASSERT(dh1->is_empty());

        Engine engine(Engine::READ_ONLY);
        setup_log(engine);
        Session session(Yb::theSchema(), &engine);
        OrmXml dobj(session, ORM_XML_ID4);
        OrmXml::Holder dh2(dobj);
        CPPUNIT_ASSERT(dh2._get_p() != NULL);
        CPPUNIT_ASSERT_EQUAL(shptr_get(dobj.get_data_object()),
                shptr_get(dh2->get_data_object()));
    }