~sethj/ubuntu/wily/unity/fix-for-1445595

3494.9.7 by Brandon Schaefer
* Add gtest for delta tracker
1
// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
2
/*
3
 * Copyright (C) 2012 Canonical Ltd
4
 *
5
 * This program is free software: you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License version 3 as
7
 * published by the Free Software Foundation.
8
 *
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * Authored by: Brandon Schaefer <brandon.schaefer@canonical.com>
18
 */
19
20
#include <gmock/gmock.h>
21
using namespace testing;
22
23
#include "launcher/DeltaTracker.h"
24
25
namespace unity
26
{
27
28
class TestDeltaTracker : public Test
29
{
30
public:
31
  TestDeltaTracker()
32
  {
33
  }
34
35
  DeltaTracker delta_tracker_;
36
};
37
38
39
TEST_F(TestDeltaTracker, TestDirectionEmptyOnStart)
40
{
41
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 0);
42
}
43
44
TEST_F(TestDeltaTracker, TestCorrectDirections)
45
{
46
  delta_tracker_.HandleNewMouseDelta(0, -1);
47
  delta_tracker_.HandleNewMouseDelta(1, 0);
48
49
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 2);
50
}
51
52
TEST_F(TestDeltaTracker, TestNoDuplicates)
53
{
54
  delta_tracker_.HandleNewMouseDelta(0, -1);
55
  delta_tracker_.HandleNewMouseDelta(0, -1);
56
57
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 1);
58
}
59
60
TEST_F(TestDeltaTracker, TestAllDirections)
61
{
62
  delta_tracker_.HandleNewMouseDelta(0, -1);
63
  delta_tracker_.HandleNewMouseDelta(0, 1);
64
  delta_tracker_.HandleNewMouseDelta(-1, 0);
65
  delta_tracker_.HandleNewMouseDelta(1, 0);
66
67
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 4);
68
}
69
70
TEST_F(TestDeltaTracker, TestResetStates)
71
{
72
  delta_tracker_.HandleNewMouseDelta(0, -1);
73
  delta_tracker_.HandleNewMouseDelta(0, 1);
74
  delta_tracker_.HandleNewMouseDelta(-1, 0);
75
  delta_tracker_.HandleNewMouseDelta(1, 0);
76
77
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 4);
78
79
  delta_tracker_.ResetState();
80
  ASSERT_EQ(delta_tracker_.AmountOfDirectionsChanged(), 0);
81
}
82
83
}