Example #1
0
static void
test_disbalance(void)
{
	static int undo_levels = 10;

	init_undo_list(&execute_fail, &undo_levels);
	reset_undo_list();

	cmd_group_begin("msg0");
	assert_int_equal(0, add_operation(OP_COPY, NULL, NULL, "do_msg0",
			"undo_msg0"));
	cmd_group_end();

	cmd_group_begin("msg1");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg1",
			"undo_msg1"));
	cmd_group_end();

	assert_int_equal(0, undo_group());
	assert_int_equal(-3, undo_group());
	assert_int_equal(-1, undo_group());
	assert_int_equal(-4, redo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(-1, redo_group());
}
Example #2
0
static void
test_underflow(void)
{
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(-1, undo_group());

	assert_int_equal(4, i);
}
Example #3
0
static void
test_redo(void)
{
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(0, redo_group());

	assert_int_equal(8, i);
}
Example #4
0
static void
test_undolevel_change_to_smaller(void)
{
	static int undo_levels = 4;

	init_undo_list_for_tests(&execute_dummy, &undo_levels);

	cmd_group_begin("msg4");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg4",
			"undo_msg4"));
	cmd_group_end();

	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(-1, undo_group());
}
Example #5
0
static void
test_cannot_be_undone(void)
{
	cmd_group_begin("msg0");
	assert_int_equal(0, add_operation(OP_REMOVE, NULL, NULL, "do_msg0", ""));
	cmd_group_end();

	assert_int_equal(-5, undo_group());
}
Example #6
0
static void
test_list_truncating(void)
{
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(0, redo_group());
	assert_int_equal(0, undo_group());
	assert_int_equal(0, undo_group());

	cmd_group_begin("msg4");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg4",
			"undo_msg4"));
	cmd_group_end();

	assert_int_equal(-1, redo_group());

	assert_int_equal(11, i);
}
Example #7
0
static void
test_removing_of_incomplete_groups(void)
{
	static int undo_levels = 10;
	int i;

	init_undo_list(&exec_dummy, &undo_levels);

	cmd_group_begin("msg0");
	for(i = 0; i < 10; i++)
		assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg0",
				"undo_msg0"));
	cmd_group_end();

	cmd_group_begin("msg1");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg1",
			"undo_msg1"));
	cmd_group_end();

	assert_int_equal(0, undo_group());
	assert_int_equal(-1, undo_group());
}
Example #8
0
static void
test_skipping(void)
{
	static int undo_levels = 10;
	init_undo_list(&exec_skip, &undo_levels);

	cmd_group_begin("msg0");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg0",
			"undo_msg0"));
	cmd_group_end();

	assert_int_equal(-6, undo_group());
	assert_int_equal(-4, redo_group());
}
Example #9
0
static void
test_cmd_1undo_1redo(void)
{
	static int undo_levels = 10;

	reset_undo_list();
	init_undo_list(&exec_dummy, &undo_levels);

	cmd_group_begin("msg0");
	assert_int_equal(0, add_operation(OP_MOVE, NULL, NULL, "do_msg0",
			"undo_msg0"));
	cmd_group_end();

	assert_int_equal(0, undo_group());
	assert_int_equal(0, redo_group());
}