1563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark/* 2563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2009 Jan Michael Alonzo 3563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 4563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * This library is free software; you can redistribute it and/or 5563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * modify it under the terms of the GNU Library General Public 6563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * License as published by the Free Software Foundation; either 7563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * version 2 of the License, or (at your option) any later version. 8563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 9563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * This library is distributed in the hope that it will be useful, 10563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * but WITHOUT ANY WARRANTY; without even the implied warranty of 11563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Library General Public License for more details. 13563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 14563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * You should have received a copy of the GNU Library General Public License 15563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * along with this library; see the file COPYING.LIB. If not, write to 16563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Boston, MA 02110-1301, USA. 18563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark */ 19563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 20563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <glib.h> 21563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <gtk/gtk.h> 22563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <webkit/webkit.h> 23563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 24f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#if GTK_CHECK_VERSION(2, 14, 0) 25563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 26563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarktypedef struct { 27563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WebKitWebHistoryItem* item; 28563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} WebHistoryItemFixture; 29563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 30563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstatic void web_history_item_fixture_setup(WebHistoryItemFixture* fixture, 31563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark gconstpointer data) 32563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 33563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark fixture->item = webkit_web_history_item_new_with_data("http://example.com/", "Example1"); 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, == , 1); 35563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert(fixture->item != NULL); 36563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 37563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 38563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstatic void web_history_item_fixture_teardown(WebHistoryItemFixture* fixture, 39563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark gconstpointer data) 40563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 41563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert(fixture->item != NULL); 42563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, ==, 1); 43563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 44563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 45563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstatic void test_webkit_web_history_item_get_data(WebHistoryItemFixture* fixture, 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark gconstpointer data) 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 48563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert_cmpstr(webkit_web_history_item_get_title(fixture->item), ==, "Example1"); 49563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert_cmpstr(webkit_web_history_item_get_uri(fixture->item), ==, "http://example.com/"); 50563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 51563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 52563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstatic void test_webkit_web_history_item_alternate_title(WebHistoryItemFixture* fixture, 53563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark gconstpointer data) 54563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 55563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark webkit_web_history_item_set_alternate_title(fixture->item, "Alternate title"); 56563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_assert_cmpstr(webkit_web_history_item_get_alternate_title(fixture->item), ==, "Alternate title"); 57563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 58563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 59563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkint main(int argc, char** argv) 60563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 61563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_thread_init(NULL); 62563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark gtk_test_init(&argc, &argv, NULL); 63563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 64563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_test_bug_base("https://bugs.webkit.org/"); 65563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_test_add("/webkit/webhistoryitem/get_data", 66563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WebHistoryItemFixture, 0, web_history_item_fixture_setup, 67563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark test_webkit_web_history_item_get_data, web_history_item_fixture_teardown); 68563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark g_test_add("/webkit/webhistoryitem/alternate_title", 69563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WebHistoryItemFixture, 0, web_history_item_fixture_setup, 70563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark test_webkit_web_history_item_alternate_title, web_history_item_fixture_teardown); 71563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark return g_test_run (); 72563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 73563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 74563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#else 75563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkint main(int argc, char** argv) 76563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{ 77f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch g_critical("You will need gtk-2.14.0 to run the unit tests. Doing nothing now."); 78563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark return 0; 79563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 80563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 81563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#endif 82