test_ewk2_page.cpp [plain text]
#include "config.h"
#include "EwkView.h"
#include "UnitTestUtils/EWK2UnitTestBase.h"
extern EWK2UnitTest::EWK2UnitTestEnvironment* environment;
static constexpr double testTimeoutSeconds = 2.0;
using namespace EWK2UnitTest;
static int numberOfMessagesReceived = 0;
class EWK2PageTest : public EWK2UnitTestBase {
public:
static void messageReceivedCallback(const char* name, const Eina_Value* body, void* userData)
{
ASSERT_STREQ("loadTest", name);
numberOfMessagesReceived++;
const char* value;
eina_value_get(body, &value);
if (numberOfMessagesReceived == 1)
ASSERT_STREQ("loadStarted", value);
else if (numberOfMessagesReceived == 2) {
ASSERT_STREQ("loadFinished", value);
bool* handled = static_cast<bool*>(userData);
*handled = true;
}
}
protected:
EWK2PageTest()
{
m_withExtension = true;
}
};
TEST_F(EWK2PageTest, ewk_page_load)
{
bool received = false;
Ewk_Context* context = ewk_view_context_get(webView());
Eina_Value* body = eina_value_new(EINA_VALUE_TYPE_STRING);
eina_value_set(body, "From UIProcess");
ewk_context_message_post_to_extensions(context, "load test", body);
eina_value_free(body);
ewk_context_message_from_extensions_callback_set(context, messageReceivedCallback, &received);
ewk_view_url_set(webView(), environment->defaultTestPageUrl());
ASSERT_TRUE(waitUntilTrue(received, testTimeoutSeconds));
}