void dateTimeHandlerTest::dateTest() { ptr<data> tag(new data(ptr<baseObject>(0))); { ptr<handlers::dataHandler> hTag= tag->getDataHandler(0, true, "DA"); hTag->setSize(1); hTag->setDate(0, 2004, 11, 5, 9, 20, 30, 5000, 1, 2); imbxInt32 year, month, day, hour, minutes, seconds, nanoseconds, offsetHours, offsetMinutes; hTag->getDate(0, &year, &month, &day, &hour, &minutes, &seconds, &nanoseconds, &offsetHours, &offsetMinutes); QVERIFY(year == 2004); QVERIFY(month == 11); QVERIFY(day == 5); QVERIFY(hour == 0); QVERIFY(minutes == 0); QVERIFY(seconds == 0); QVERIFY(nanoseconds == 0); QVERIFY(offsetHours == 0); QVERIFY(offsetMinutes == 0); QVERIFY(hTag->getUnicodeString(0) == L"2004-11-05"); } { ptr<handlers::dataHandlerRaw> hTag= tag->getDataHandlerRaw(0, true, "DA"); std::basic_string<imbxUint8> checkString(hTag->getMemory()->data(), hTag->getMemory()->size()); QVERIFY(checkString == (imbxUint8*)"20041105"); hTag->getMemory()->assign((imbxUint8*)"2004-11-5", 9); } { ptr<handlers::dataHandlerRaw> hTag= tag->getDataHandlerRaw(0, false, "DA"); std::basic_string<imbxUint8> checkString(hTag->getMemory()->data(), hTag->getMemory()->size()); stringUint8 compString((imbxUint8*)"2004-11-5", 9); compString += (imbxUint8)0; // buffer's size is always even! QVERIFY(checkString == compString); } { ptr<handlers::dataHandler> hTag= tag->getDataHandler(0, false, "DA"); imbxInt32 year, month, day, hour, minutes, seconds, nanoseconds, offsetHours, offsetMinutes; hTag->getDate(0, &year, &month, &day, &hour, &minutes, &seconds, &nanoseconds, &offsetHours, &offsetMinutes); QVERIFY(year == 2004); QVERIFY(month == 11); QVERIFY(day == 5); QVERIFY(hour == 0); QVERIFY(minutes == 0); QVERIFY(seconds == 0); QVERIFY(nanoseconds == 0); QVERIFY(offsetHours == 0); QVERIFY(offsetMinutes == 0); QVERIFY(hTag->getUnicodeString(0) == L"2004-11-05"); } }
int SSIEngine::evalOperator( HttpSession *pSession, ExprToken * &pTok ) { char * p1 = NULL; int len; int ret; if ( !pTok ) return 0; int type = pTok->getType(); ExprToken * pCur = pTok; pTok = pTok->next(); switch( type ) { case ExprToken::EXP_STRING: return ( pCur->getStr()->len() > 0 ); case ExprToken::EXP_FMT: { char achBuf1[40960]; p1 = achBuf1; len = 40960; RequestVars::buildString( pCur->getFormat(), pSession, p1, len, 0, pSession->getReq()->getSSIRuntime()->getRegexResult() ); return len > 0; } case ExprToken::EXP_REGEX: return 0; case ExprToken::EXP_NOT: if ( pTok ) { return !evalOperator( pSession, pTok ); } else return 1; default: break; } if (( type == ExprToken::EXP_AND )|| ( type == ExprToken::EXP_OR )) { ret = evalOperator( pSession, pTok ); if ((( ret )&&( pTok->getType() == ExprToken::EXP_OR ))|| (( !ret )&&( pTok->getType() == ExprToken::EXP_AND ))) { if ( pTok ) { shortCurcuit( pTok ); } return ret; } ret = evalOperator( pSession, pTok ); return ret; } if ( !pTok ) return 0; return compString( pSession, type, pTok ); }
void dateTimeHandlerTest::timeTest() { ptr<data> tag(new data(ptr<baseObject>(0))); { ptr<handlers::dataHandler> hTag= tag->getDataHandler(0, true, "TM"); hTag->setSize(1); hTag->setDate(0, 2004, 11, 5, 9, 20, 40, 5000, 1, 2); imbxInt32 year, month, day, hour, minutes, seconds, nanoseconds, offsetHours, offsetMinutes; hTag->getDate(0, &year, &month, &day, &hour, &minutes, &seconds, &nanoseconds, &offsetHours, &offsetMinutes); QVERIFY(year == 0); QVERIFY(month == 0); QVERIFY(day == 0); QVERIFY(hour == 9); QVERIFY(minutes == 20); QVERIFY(seconds == 40); QVERIFY(nanoseconds == 5000); QVERIFY(offsetHours == 0); QVERIFY(offsetMinutes == 0); QVERIFY(hTag->getUnicodeString(0) == L"09:20:40.005000"); } { ptr<handlers::dataHandlerRaw> hTag= tag->getDataHandlerRaw(0, true, "TM"); stringUint8 compString((imbxUint8*)"092040.005000"); compString += (imbxUint8)0; std::basic_string<imbxUint8> checkString(hTag->getMemory()->data(), hTag->getMemory()->size()); QVERIFY(checkString == compString); hTag->getMemory()->assign((imbxUint8*)"9:20:40", 7); } { ptr<handlers::dataHandler> hTag= tag->getDataHandler(0, false, "TM"); imbxInt32 year, month, day, hour, minutes, seconds, nanoseconds, offsetHours, offsetMinutes; hTag->getDate(0, &year, &month, &day, &hour, &minutes, &seconds, &nanoseconds, &offsetHours, &offsetMinutes); QVERIFY(year == 0); QVERIFY(month == 0); QVERIFY(day == 0); QVERIFY(hour == 9); QVERIFY(minutes == 20); QVERIFY(seconds == 40); QVERIFY(nanoseconds == 0); QVERIFY(offsetHours == 0); QVERIFY(offsetMinutes == 0); QVERIFY(hTag->getUnicodeString(0) == L"09:20:40.000000"); } }