/* Copyright (C) 2008 Christian Dywan This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. See the file COPYING for the full license text. */ #if HAVE_CONFIG_H #include #endif #include "compat.h" #include "sokoke.h" int main (int argc, char** argv) { KatzeArray* search_engines; KatzeItem* item; gchar* uri; gchar* a, *b; gtk_init (&argc, &argv); search_engines = katze_array_new (KATZE_TYPE_ITEM); item = g_object_new (KATZE_TYPE_ITEM, "uri", "http://www.searchmash.com/search/%s", "token", "sm", NULL); katze_array_add_item (search_engines, item); #define test_input(input, expected) \ uri = sokoke_magic_uri (input, search_engines); \ if (g_strcmp0 (uri, expected)) \ { \ g_print ("Input: %s\nExpected: %s\nResult: %s\n\n", \ input ? input : "NULL", \ expected ? expected : "NULL", \ uri ? uri : "NULL"); \ return 1; \ } \ g_free (uri) test_input ("ftp://ftp.mozilla.org", "ftp://ftp.mozilla.org"); test_input ("ftp://ftp.mozilla.org/pub", "ftp://ftp.mozilla.org/pub"); test_input ("http://www.example.com", "http://www.example.com"); test_input ("http://example.com", "http://example.com"); test_input ("example.com", "http://example.com"); test_input ("example.com", "http://example.com"); test_input ("/home/user/midori.html", "file:///home/user/midori.html"); a = g_get_current_dir (); b = g_strconcat ("file://", a, G_DIR_SEPARATOR_S, "magic-uri.c", NULL); g_free (a); test_input ("magic-uri.c", b); g_free (b); test_input ("localhost", "http://localhost"); test_input ("localhost:8000", "http://localhost:8000"); test_input ("192.168.1.1", "http://192.168.1.1"); test_input ("192.168.1.1:8000", "http://192.168.1.1:8000"); test_input ("sm midori", "http://www.searchmash.com/search/midori"); test_input ("sm cats dogs", "http://www.searchmash.com/search/cats dogs"); test_input ("dict midori", NULL); test_input ("cats", NULL); test_input ("cats dogs", NULL); test_input ("gtk 2.0", NULL); test_input ("gtk2.0", NULL); test_input ("midori0.1.0", NULL); test_input ("midori 0.1.0", NULL); return 0; }