Пример #1
0
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");
	}
}
Пример #2
0
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 );
}
Пример #3
0
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");
	}
}