about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--dwm.h2
-rw-r--r--event.c2
-rw-r--r--tag.c14
3 files changed, 18 insertions, 0 deletions
diff --git a/dwm.h b/dwm.h
index bcdb4e3..0b6b21f 100644
--- a/dwm.h
+++ b/dwm.h
@@ -143,6 +143,8 @@ extern void replacetag(Arg *arg);
 extern void settags(Client *c);
 extern void togglemode(Arg *arg);
 extern void view(Arg *arg);
+extern void viewnext(Arg *arg);
+extern void viewprev(Arg *arg);
 
 /* util.c */
 extern void *emallocz(unsigned int size);
diff --git a/event.c b/event.c
index 17be71d..2cebc9e 100644
--- a/event.c
+++ b/event.c
@@ -32,8 +32,10 @@ static Key key[] = {
 	{ MODKEY,		XK_2,		view,		{ .i = Tnet } }, 
 	{ MODKEY,		XK_3,		view,		{ .i = Twork } }, 
 	{ MODKEY,		XK_4,		view,		{ .i = Tmisc} }, 
+	{ MODKEY,		XK_h,		viewprev,	{ 0 } },
 	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, 
 	{ MODKEY,		XK_k,		focusprev,	{ 0 } },
+	{ MODKEY,		XK_l,		viewnext,	{ 0 } },
 	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, 
 	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, 
 	{ MODKEY,		XK_Return,	zoom,		{ 0 } },
diff --git a/tag.c b/tag.c
index c42a760..6b7e184 100644
--- a/tag.c
+++ b/tag.c
@@ -216,3 +216,17 @@ view(Arg *arg)
 	arrange(NULL);
 	drawall();
 }
+
+void
+viewnext(Arg *arg)
+{
+	arg->i = (tsel < TLast-1) ? tsel+1 : 0;
+	view(arg);
+}
+
+void
+viewprev(Arg *arg)
+{
+	arg->i = (tsel > 0) ? tsel-1 : TLast-1;
+	view(arg);
+}
Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

#include "xmpp/xmpp.h"

#include "ui/ui.h"
#include "ui/stub_ui.h"

#include "config/accounts.h"
#include "command/commands.h"

#define CMD_ROOMS "/rooms"

static void test_with_connection_status(jabber_conn_status_t status)
{
    will_return(connection_get_status, status);

    expect_cons_show("You are not currently connected.");

    gboolean result = cmd_rooms(NULL, CMD_ROOMS, NULL);
    assert_true(result);
}

void cmd_rooms_shows_message_when_disconnected(void **state)
{
    test_with_connection_status(JABBER_DISCONNECTED);
}

void cmd_rooms_shows_message_when_disconnecting(void **state)
{
    test_with_connection_status(JABBER_DISCONNECTING);
}

void cmd_rooms_shows_message_when_connecting(void **state)
{
    test_with_connection_status(JABBER_CONNECTING);
}

void cmd_rooms_uses_account_default_when_no_arg(void **state)
{
    gchar *args[] = { NULL };

    ProfAccount *account = account_new("testaccount", NULL, NULL, NULL, TRUE, NULL, 0, NULL, NULL, NULL,
        0, 0, 0, 0, 0, strdup("default_conf_server"), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

    will_return(connection_get_status, JABBER_CONNECTED);
    will_return(session_get_account_name, "account_name");
    expect_any(accounts_get_account, name);
    will_return(accounts_get_account, account);

    expect_string(iq_room_list_request, conferencejid, "default_conf_server");

    gboolean result = cmd_rooms(NULL, CMD_ROOMS, args);
    assert_true(result);
}

void cmd_rooms_arg_used_when_passed(void **state)
{
    gchar *args[] = { "conf_server_arg" };

    will_return(connection_get_status, JABBER_CONNECTED);

    expect_string(iq_room_list_request, conferencejid, "conf_server_arg");

    gboolean result = cmd_rooms(NULL, CMD_ROOMS, args);
    assert_true(result);
}