uzbl/tests/test-command.c
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 03 Oct 2012 11:47:52 +0000
changeset 32 23d2385dd44c
parent 12 48db03aa2650
permissions -rw-r--r--
make clobber fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/* -*- c-basic-offset: 4; -*- */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
#define _POSIX_SOURCE
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
#include <gtk/gtk.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
#include <gdk/gdkx.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
#include <gdk/gdkkeysyms.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
#include <sys/socket.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
#include <sys/stat.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
#include <sys/types.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
#include <sys/un.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
#include <sys/utsname.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
#include <sys/time.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
#include <webkit/webkit.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
#include <libsoup/soup.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
#include <JavaScriptCore/JavaScript.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
#include <stdio.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
#include <string.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
#include <unistd.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
#include <stdlib.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
#include <errno.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
#include <fcntl.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
#include <signal.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
#include <src/uzbl-core.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
#include <src/config.h>
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
extern UzblCore uzbl;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
#define INSTANCE_NAME "testing"
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
#define ASSERT_EVENT(EF, STR) { read_event(ef); \
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    g_assert_cmpstr("EVENT [" INSTANCE_NAME "] " STR "\n", ==, ef->event_buffer); }
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
struct EventFixture
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
{
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
  /* uzbl's end of the socketpair */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
  int uzbl_sock;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
  /* the test framework's end of the socketpair */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
  int test_sock;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
  char event_buffer[1024];
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
};
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
read_event (struct EventFixture *ef) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    int r = read(ef->test_sock, ef->event_buffer, 1023); \
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    ef->event_buffer[r] = 0;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
assert_no_event (struct EventFixture *ef) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    fd_set rfds;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    FD_ZERO(&rfds);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    FD_SET(ef->test_sock, &rfds);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    struct timeval timeout;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    timeout.tv_sec = 0;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    timeout.tv_usec = 0;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    /* check if there's any data waiting */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    int res = select(ef->test_sock + 1, &rfds, NULL, NULL, &timeout);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    if(res == 0) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        /* timeout expired, there was no event */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        /* success */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
        return;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    } else if(res == -1) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
        /* mechanical failure */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
        perror("select():");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
        assert(0);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    } else {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
        /* there was an event. display it. */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
        read_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        g_assert_cmpstr("", ==, ef->event_buffer);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    }
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
event_fixture_setup(struct EventFixture *ef, const void* data)
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
{
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
    (void) data;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    int socks[2];
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    /* make some sockets, fresh for every test */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    if(socketpair(AF_UNIX, SOCK_STREAM, 0, socks) == -1)
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
      perror("socketpair() failed");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
      g_assert(0);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    }
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    ef->uzbl_sock = socks[0];
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    ef->test_sock = socks[1];
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    /* attach uzbl_sock to uzbl's event dispatcher. */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    GIOChannel *iochan = g_io_channel_unix_new(ef->uzbl_sock);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    g_io_channel_set_encoding(iochan, NULL, NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    if(!uzbl.comm.connect_chan)
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
        uzbl.comm.connect_chan = g_ptr_array_new();
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    if(!uzbl.comm.client_chan)
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
        uzbl.comm.client_chan = g_ptr_array_new();
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    g_ptr_array_add(uzbl.comm.client_chan, (gpointer)iochan);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
event_fixture_teardown(struct EventFixture *ef, const void *data)
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
{
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    (void) data;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    /* there should be no events left waiting */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    assert_no_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    /* clean up the io channel we opened for uzbl */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    GIOChannel *iochan = g_ptr_array_index(uzbl.comm.client_chan, 0);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
    remove_socket_from_array(iochan);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    /* close the sockets so that nothing sticks around between tests */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    close(ef->uzbl_sock);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    close(ef->test_sock);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
/* actual tests begin here */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
test_event (struct EventFixture *ef, const void *data) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    (void) data;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    parse_cmd_line("event", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    assert_no_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    /* a simple event can be sent */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    parse_cmd_line("event event_type arg u ments", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    ASSERT_EVENT(ef, "EVENT_TYPE arg u ments");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    /* arguments to event should be expanded */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    parse_cmd_line("event event_type @(echo expansion)@ test", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    ASSERT_EVENT(ef, "EVENT_TYPE expansion test");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
    /* "request" is just an alias for "event" */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    parse_cmd_line("request event_type arg u ments", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    ASSERT_EVENT(ef, "EVENT_TYPE arg u ments");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
test_set_variable (struct EventFixture *ef, const void *data) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    (void) data;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    /* set a string */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    parse_cmd_line("set useragent = Uzbl browser kthxbye!", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    ASSERT_EVENT(ef, "VARIABLE_SET useragent str 'Uzbl browser kthxbye!'");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    g_assert_cmpstr("Uzbl browser kthxbye!", ==, uzbl.net.useragent);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    /* set an int */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    parse_cmd_line("set forward_keys = 0", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    ASSERT_EVENT(ef, "VARIABLE_SET forward_keys int 0");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    g_assert_cmpint(0, ==, uzbl.behave.forward_keys);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    /* set a float */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    /* we have to be careful about locales here */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    GString *cmd, *ev;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    cmd = g_string_new("set zoom_level = ");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    g_string_append_printf(cmd, "%f", 0.25);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    parse_cmd_line(g_string_free(cmd, FALSE), NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    ev = g_string_new("EVENT [" INSTANCE_NAME "] VARIABLE_SET zoom_level float ");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    g_string_append_printf(ev, "%.2f\n", 0.25);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    read_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    g_assert_cmpstr(g_string_free(ev, FALSE), ==, ef->event_buffer);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    g_assert_cmpfloat(0.25, ==, uzbl.behave.zoom_level);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
    /* set a constant int (nothing should happen) */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    int old_major = uzbl.info.webkit_major;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    parse_cmd_line("set WEBKIT_MAJOR = 100", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    assert_no_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    g_assert_cmpint(old_major, ==, uzbl.info.webkit_major);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
    /* set a constant str (nothing should happen)  */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    GString *old_arch = g_string_new(uzbl.info.arch);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    parse_cmd_line("set ARCH_UZBL = A Lisp Machine", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
    assert_no_event(ef);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    g_assert_cmpstr(g_string_free(old_arch, FALSE), ==, uzbl.info.arch);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    /* set a custom variable */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    parse_cmd_line("set nonexistant_variable = Some Value", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    ASSERT_EVENT(ef, "VARIABLE_SET nonexistant_variable str 'Some Value'");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
    uzbl_cmdprop *c = g_hash_table_lookup(uzbl.comm.proto_var, "nonexistant_variable");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
    g_assert_cmpstr("Some Value", ==, *c->ptr.s);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    /* set a custom variable with expansion */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    parse_cmd_line("set an_expanded_variable = Test @(echo expansion)@", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    ASSERT_EVENT(ef, "VARIABLE_SET an_expanded_variable str 'Test expansion'");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    c = g_hash_table_lookup(uzbl.comm.proto_var, "an_expanded_variable");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    g_assert_cmpstr("Test expansion", ==, *c->ptr.s);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
test_print (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    GString *result = g_string_new("");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    /* a simple message can be returned as a result */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    parse_cmd_line("print A simple test", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    g_assert_cmpstr("A simple test", ==, result->str);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    /* arguments to print should be expanded */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    parse_cmd_line("print A simple @(echo expansion)@ test", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    g_assert_cmpstr("A simple expansion test", ==, result->str);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    g_string_free(result, TRUE);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
test_scroll (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    uzbl.gui.scbar_v = (GtkScrollbar*) gtk_vscrollbar_new (NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    uzbl.gui.bar_v = gtk_range_get_adjustment((GtkRange*) uzbl.gui.scbar_v);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    gtk_adjustment_set_lower(uzbl.gui.bar_v, 0);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    gtk_adjustment_set_upper(uzbl.gui.bar_v, 100);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    gtk_adjustment_set_page_size(uzbl.gui.bar_v, 5);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    /* scroll vertical end should scroll it to upper - page_size */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    parse_cmd_line("scroll vertical end", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 95);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    /* scroll vertical begin should scroll it to lower */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    parse_cmd_line("scroll vertical begin", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 0);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
    /* scroll vertical can scroll by pixels */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    parse_cmd_line("scroll vertical 15", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 15);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    parse_cmd_line("scroll vertical -10", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 5);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    /* scroll vertical can scroll by a percentage of the page size */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
    parse_cmd_line("scroll vertical 100%", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 10);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    parse_cmd_line("scroll vertical 150%", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    g_assert_cmpfloat(gtk_adjustment_get_value(uzbl.gui.bar_v), ==, 17.5);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
    /* scroll_horz behaves basically the same way. */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
test_toggle_status (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
    g_assert(!uzbl.behave.show_status);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
    /* status bar can be toggled on */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
    parse_cmd_line("toggle_status", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    g_assert(uzbl.behave.show_status);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    /* status bar can be toggled back off */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    parse_cmd_line("toggle_status", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    g_assert(!uzbl.behave.show_status);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
test_sync_sh (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
    GString *result = g_string_new("");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
    parse_cmd_line("sync_sh 'echo Test echo.'", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    g_assert_cmpstr("Test echo.\n", ==, result->str);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    g_string_free(result, TRUE);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
test_js (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    GString *result = g_string_new("");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    /* simple javascript can be evaluated and returned */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    parse_cmd_line("js ('x' + 345).toUpperCase()", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    g_assert_cmpstr("X345", ==, result->str);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
    g_string_free(result, TRUE);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
void test_uri(void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    /* Testing for a crash, not crashing is a pass */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
    parse_cmd_line("uri", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
test_last_result (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
    GString *result = g_string_new("");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
    /* the last result gets set */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
    parse_cmd_line("js -1", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
    g_assert_cmpstr("-1", ==, uzbl.state.last_result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
    /* the last result can be used in a chain */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    parse_cmd_line("chain 'js 1' 'js \\@_ + 1'", result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
    g_assert_cmpstr("2", ==, uzbl.state.last_result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
    g_string_free(result, TRUE);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
void
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
test_no_such_command (void) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
    parse_cmd_line("no-such-command", NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
    /* if we didn't crash then we're ok! */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
int
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
main (int argc, char *argv[]) {
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
    /* set up tests */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
    g_type_init();
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
    g_test_init(&argc, &argv, NULL);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
    g_test_add("/test-command/set-variable",   struct EventFixture, NULL, event_fixture_setup, test_set_variable, event_fixture_teardown);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    g_test_add("/test-command/event",          struct EventFixture, NULL, event_fixture_setup, test_event,        event_fixture_teardown);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
    g_test_add_func("/test-command/print",          test_print);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
    g_test_add_func("/test-command/uri",            test_uri);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
    g_test_add_func("/test-command/scroll",         test_scroll);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
    g_test_add_func("/test-command/toggle-status",  test_toggle_status);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    g_test_add_func("/test-command/sync-sh",        test_sync_sh);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    g_test_add_func("/test-command/js",             test_js);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
    g_test_add_func("/test-command/last-result",    test_last_result);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
    g_test_add_func("/test-command/no-such-command", test_no_such_command);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
    /* set up uzbl */
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
    initialize(argc, argv);
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
    uzbl.state.config_file = "/tmp/uzbl-config";
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
    uzbl.comm.fifo_path = "/tmp/some-nonexistant-fifo";
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
    uzbl.comm.socket_path = "/tmp/some-nonexistant-socket";
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    uzbl.state.uri = g_strdup("http://example.org/");
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
    uzbl.gui.main_title = "Example.Org";
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
    uzbl.state.instance_name = INSTANCE_NAME;
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
    uzbl.behave.shell_cmd = "sh -c";
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    return g_test_run();
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
}
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
48db03aa2650 Added uzbl source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
/* vi: set et ts=4: */