Exemple #1
0
void TestInvocation::didReceiveMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody)
{
    if (WKStringIsEqualToUTF8CString(messageName, "Error")) {
        // Set all states to true to stop spinning the runloop.
        m_gotInitialResponse = true;
        m_gotFinalMessage = true;
        m_error = true;
        TestController::shared().notifyDone();
        return;
    }

    if (WKStringIsEqualToUTF8CString(messageName, "Ack")) {
        ASSERT(WKGetTypeID(messageBody) == WKStringGetTypeID());
        WKStringRef messageBodyString = static_cast<WKStringRef>(messageBody);
        if (WKStringIsEqualToUTF8CString(messageBodyString, "BeginTest")) {
            m_gotInitialResponse = true;
            TestController::shared().notifyDone();
            return;
        }

        ASSERT_NOT_REACHED();
    }

    if (WKStringIsEqualToUTF8CString(messageName, "Done")) {
        ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID());
        WKDictionaryRef messageBodyDictionary = static_cast<WKDictionaryRef>(messageBody);

        WKRetainPtr<WKStringRef> textOutputKey(AdoptWK, WKStringCreateWithUTF8CString("TextOutput"));
        WKStringRef textOutput = static_cast<WKStringRef>(WKDictionaryGetItemForKey(messageBodyDictionary, textOutputKey.get()));

        WKRetainPtr<WKStringRef> pixelResultKey = adoptWK(WKStringCreateWithUTF8CString("PixelResult"));
        WKImageRef pixelResult = static_cast<WKImageRef>(WKDictionaryGetItemForKey(messageBodyDictionary, pixelResultKey.get()));
        ASSERT(!pixelResult || m_dumpPixels);
        
        WKRetainPtr<WKStringRef> repaintRectsKey = adoptWK(WKStringCreateWithUTF8CString("RepaintRects"));
        WKArrayRef repaintRects = static_cast<WKArrayRef>(WKDictionaryGetItemForKey(messageBodyDictionary, repaintRectsKey.get()));        

        // Dump text.
        dump(toSTD(textOutput).c_str(), true);

        // Dump pixels (if necessary).
        if (m_dumpPixels && pixelResult)
            dumpPixelsAndCompareWithExpected(pixelResult, repaintRects);

        fputs("#EOF\n", stdout);
        fflush(stdout);
        fflush(stderr);
        
        m_gotFinalMessage = true;
        TestController::shared().notifyDone();
        return;
    }
    
    if (WKStringIsEqualToUTF8CString(messageName, "BeforeUnloadReturnValue")) {
        ASSERT(WKGetTypeID(messageBody) == WKBooleanGetTypeID());
        WKBooleanRef beforeUnloadReturnValue = static_cast<WKBooleanRef>(messageBody);
        TestController::shared().setBeforeUnloadReturnValue(WKBooleanGetValue(beforeUnloadReturnValue));
        return;
    }
    
    if (WKStringIsEqualToUTF8CString(messageName, "AddChromeInputField")) {
        TestController::shared().mainWebView()->addChromeInputField();
        WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("CallAddChromeInputFieldCallback"));
        WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), 0);
        return;
    }

    if (WKStringIsEqualToUTF8CString(messageName, "RemoveChromeInputField")) {
        TestController::shared().mainWebView()->removeChromeInputField();
        WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("CallRemoveChromeInputFieldCallback"));
        WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), 0);
        return;
    }
    
    if (WKStringIsEqualToUTF8CString(messageName, "FocusWebView")) {
        TestController::shared().mainWebView()->makeWebViewFirstResponder();
        WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("CallFocusWebViewCallback"));
        WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), 0);
        return;
    }

    if (WKStringIsEqualToUTF8CString(messageName, "SetBackingScaleFactor")) {
        ASSERT(WKGetTypeID(messageBody) == WKDoubleGetTypeID());
        double backingScaleFactor = WKDoubleGetValue(static_cast<WKDoubleRef>(messageBody));
        WKPageSetCustomBackingScaleFactor(TestController::shared().mainWebView()->page(), backingScaleFactor);

        WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("CallSetBackingScaleFactorCallback"));
        WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), 0);
        return;
    }

    ASSERT_NOT_REACHED();
}
Exemple #2
0
static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void*)
{
    printf("CONFIRM NAVIGATION: %s\n", toSTD(message).c_str());
    return TestController::shared().beforeUnloadReturnValue();
}
static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void *clientInfo)
{
    TestController* testController = static_cast<TestController*>(const_cast<void*>(clientInfo));
    printf("CONFIRM NAVIGATION: %s\n", toSTD(message).c_str());
    return testController->beforeUnloadReturnValue();
}
Exemple #4
0
//---------------------------------------------------------------------------
void TTrailBoard::extractResults( )
{
	results = new ROSETTA();

	ROSETTA *g = new ROSETTA();
	g->setString(std::string("partid"),toSTD(game->m_returnDataHeader.partid));
	g->setString("sessionid",toSTD(game->m_returnDataHeader.sessionid));
	g->setString("sectionid",toSTD(game->m_returnDataHeader.sectionid));

	System::TDateTime DT = Now();
	String completeDate = DT.FormatString("yyyy-mm-dd") + "T" + DT.FormatString("hh:mm:ss");
	g->setString("dateCompleted",std::string(toSTD(completeDate)));
	results->attachSubRosetta("header",g);

	g = new ROSETTA();
	g->setString(toSTD(L"dateStarted"),toSTD(game->m_returnDataHeader.dateStarted));
	g->setInt(toSTD(L"abandon"),game->m_returnDataHeader.abandon);
	g->setInt(toSTD(L"introelapsed"),game->m_returnDataHeader.introelapsed);
	g->setInt(toSTD(L"totelapsed"),game->m_returnDataHeader.totelapsed);
	g->setInt(toSTD(L"practiceaelapsed"),game->m_returnDataHeader.practiceaelapsed);
	g->setInt(toSTD(L"practiceaerrors"),game->m_returnDataHeader.practiceaerrors);
	g->setInt(toSTD(L"practicebelapsed"),game->m_returnDataHeader.practicebelapsed);
	g->setInt(toSTD(L"practiceberrors"),game->m_returnDataHeader.practiceberrors);
	g->setInt(toSTD(L"partaelapsed"),game->m_returnDataHeader.partaelapsed);
	g->setInt(toSTD(L"partaerrors"),game->m_returnDataHeader.partaerrors);
	g->setInt(toSTD(L"partbelapsed"),game->m_returnDataHeader.partbelapsed);
	g->setInt(toSTD(L"partberrors"),game->m_returnDataHeader.partberrors);

	for (unsigned int i=0;i<game->m_returnDataRow.size();i++)
	{
		ROSETTA *l = new ROSETTA();
		TRAIL_GAME::returnDataRow *m_CurrentRow = game->m_returnDataRow[i];

		l->setInt(toSTD("trail_number"),m_CurrentRow->trial_number);
		l->setInt(toSTD("trial_component"),m_CurrentRow->trial_component+1);
		l->setInt(toSTD("attempt"),m_CurrentRow->attempt+1);

		l->setInt(toSTD("elapsed"),m_CurrentRow->elapsed);  //long
		l->setString(toSTD("expected"),toSTD(m_CurrentRow->expected)); //string
		l->setString(toSTD("selected"),toSTD(m_CurrentRow->selected));    //string
		l->setInt(toSTD("match"),m_CurrentRow->match);      //int
		l->setString(toSTD("part"),toSTD(m_CurrentRow->part));        //CHAR
		l->setString(toSTD("trialtype"),toSTD(m_CurrentRow->trialtype));

		std::stringstream ss;
		ss << i;
		g->attachSubRosetta(ss.str(), l);
//		delete l;
	}
	results->attachSubRosetta("qidresp",g);
}
Exemple #5
0
void LayoutTestController::dumpConfigurationForViewport(int deviceDPI, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight)
{
    InjectedBundle::shared().os() << toSTD(adoptWK(WKBundlePageViewportConfigurationAsText(InjectedBundle::shared().page()->page(), deviceDPI, deviceWidth, deviceHeight, availableWidth, availableHeight)));
}
static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void *clientInfo)
{
    printf("%s\n", toSTD(message).c_str());
    return true;
}