diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp deleted file mode 100644 index d7d99eaf4..000000000 --- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2012 Intel Corporation. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" - -#include "UnitTestUtils/EWK2UnitTestBase.h" -#include "UnitTestUtils/EWK2UnitTestServer.h" - -using namespace EWK2UnitTest; - -extern EWK2UnitTestEnvironment* environment; - -static void onIntentServiceRegistration(void* userData, Evas_Object*, void* eventInfo) -{ - bool* intentRegistered = static_cast<bool*>(userData); - ASSERT_FALSE(*intentRegistered); - *intentRegistered = true; - - Ewk_Intent_Service* service = static_cast<Ewk_Intent_Service*>(eventInfo); - ASSERT_TRUE(service); - EXPECT_STREQ("action", ewk_intent_service_action_get(service)); - EXPECT_STREQ("type", ewk_intent_service_type_get(service)); - EXPECT_STREQ("Title", ewk_intent_service_title_get(service)); - EXPECT_STREQ("http://example.com/service", ewk_intent_service_href_get(service)); - EXPECT_STREQ("inline", ewk_intent_service_disposition_get(service)); -} - -TEST_F(EWK2UnitTestBase, ewk_intent_service_registration) -{ - bool intentRegistered = false; - evas_object_smart_callback_add(webView(), "intent,service,register", onIntentServiceRegistration, &intentRegistered); - ASSERT_TRUE(loadUrlSync(environment->urlForResource("intent-service.html").data())); - evas_object_smart_callback_del(webView(), "intent,service,register", onIntentServiceRegistration); - ASSERT_TRUE(intentRegistered); -} - -int stringSortCb(const void* d1, const void* d2) -{ - return strcmp(static_cast<const char*>(d1), static_cast<const char*>(d2)); -} - -static void onIntentReceived(void* userData, Evas_Object*, void* eventInfo) -{ - unsigned* intentReceivedCount = static_cast<unsigned*>(userData); - ASSERT_GE(*intentReceivedCount, 0); - ASSERT_LE(*intentReceivedCount, 1); - ++(*intentReceivedCount); - - Ewk_Intent* intent = static_cast<Ewk_Intent*>(eventInfo); - ASSERT_TRUE(intent); - - if (*intentReceivedCount == 1) { - // First intent. - EXPECT_STREQ("action1", ewk_intent_action_get(intent)); - EXPECT_STREQ("mime/type1", ewk_intent_type_get(intent)); - EXPECT_STREQ("http://service1.com/", ewk_intent_service_get(intent)); - EXPECT_STREQ("value1", ewk_intent_extra_get(intent, "key1")); - EXPECT_STREQ("value2", ewk_intent_extra_get(intent, "key2")); - } else { - // Second intent. - EXPECT_STREQ("action2", ewk_intent_action_get(intent)); - EXPECT_STREQ("mime/type2", ewk_intent_type_get(intent)); - Eina_List* suggestions = ewk_intent_suggestions_get(intent); - ASSERT_TRUE(suggestions); - ASSERT_EQ(2, eina_list_count(suggestions)); - // We need to sort the suggestions since Intent is using a HashSet internally. - suggestions = eina_list_sort(suggestions, 2, stringSortCb); - EXPECT_STREQ("http://service1.com/", static_cast<const char*>(eina_list_nth(suggestions, 0))); - EXPECT_STREQ("http://service2.com/", static_cast<const char*>(eina_list_nth(suggestions, 1))); - - void* listData = 0; - EINA_LIST_FREE(suggestions, listData) - eina_stringshare_del(static_cast<const char*>(listData)); - } -} - -TEST_F(EWK2UnitTestBase, ewk_intent_request) -{ - unsigned intentReceivedCount = 0; - evas_object_smart_callback_add(webView(), "intent,request,new", onIntentReceived, &intentReceivedCount); - ASSERT_TRUE(loadUrlSync(environment->urlForResource("intent-request.html").data())); - - // A user gesture is required for the intent to start. - mouseClick(5, 5); - while (intentReceivedCount != 1) - ecore_main_loop_iterate(); - ASSERT_EQ(1, intentReceivedCount); - - // Generate a second intent request. - mouseClick(5, 5); - while (intentReceivedCount != 2) - ecore_main_loop_iterate(); - ASSERT_EQ(2, intentReceivedCount); - evas_object_smart_callback_del(webView(), "intent,request,new", onIntentReceived); -} |