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(); }
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(); }
//--------------------------------------------------------------------------- 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); }
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; }