• Main Page
  • Classes
  • Files
  • File List

CMSWindowsClipboardTests.cpp

00001 /*
00002  * synergy -- mouse and keyboard sharing utility
00003  * Copyright (C) 2012 Bolton Software Ltd.
00004  * Copyright (C) 2011 Nick Bolton
00005  * 
00006  * This package is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * found in the file COPYING that should have accompanied this file.
00009  * 
00010  * This package is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00017  */
00018 
00019 #include <gtest/gtest.h>
00020 #include <gmock/gmock.h>
00021 #include "CMSWindowsClipboard.h"
00022 #include "IMSWindowsClipboardFacade.h"
00023 
00024 class CMSWindowsClipboardTests : public ::testing::Test
00025 {
00026 protected:
00027     virtual void SetUp()
00028     {
00029         emptyClipboard();
00030     }
00031 
00032     virtual void TearDown()
00033     {
00034         emptyClipboard();
00035     }
00036 
00037 private:
00038     void emptyClipboard() 
00039     {
00040         CMSWindowsClipboard clipboard(NULL);
00041         clipboard.open(0);
00042         clipboard.empty();
00043     }
00044 };
00045 
00046 class MockFacade : public IMSWindowsClipboardFacade
00047 {
00048 public:
00049     MOCK_METHOD2(write, void(HANDLE, UINT));
00050 };
00051 
00052 TEST_F(CMSWindowsClipboardTests, emptyUnowned_openCalled_returnsTrue)
00053 {
00054     CMSWindowsClipboard clipboard(NULL);
00055     clipboard.open(0);
00056 
00057     bool actual = clipboard.emptyUnowned();
00058 
00059     EXPECT_EQ(true, actual);
00060 }
00061 
00062 TEST_F(CMSWindowsClipboardTests, empty_openCalled_returnsTrue)
00063 {
00064     CMSWindowsClipboard clipboard(NULL);
00065     clipboard.open(0);
00066 
00067     bool actual = clipboard.empty();
00068 
00069     EXPECT_EQ(true, actual);
00070 }
00071 
00072 TEST_F(CMSWindowsClipboardTests, empty_singleFormat_hasReturnsFalse)
00073 {
00074     CMSWindowsClipboard clipboard(NULL);
00075     clipboard.open(0);
00076     clipboard.add(CMSWindowsClipboard::kText, "synergy rocks!");
00077 
00078     clipboard.empty();
00079 
00080     bool actual = clipboard.has(CMSWindowsClipboard::kText);
00081     EXPECT_EQ(false, actual);
00082 }
00083 
00084 TEST_F(CMSWindowsClipboardTests, add_newValue_valueWasStored)
00085 {
00086     CMSWindowsClipboard clipboard(NULL);
00087     clipboard.open(0);
00088 
00089     clipboard.add(IClipboard::kText, "synergy rocks!");
00090 
00091     CString actual = clipboard.get(IClipboard::kText);
00092     EXPECT_EQ("synergy rocks!", actual);
00093 }
00094 
00095 TEST_F(CMSWindowsClipboardTests, add_newValue_writeWasCalled)
00096 {
00097     MockFacade facade;
00098     EXPECT_CALL(facade, write(testing::_, testing::_));
00099 
00100     CMSWindowsClipboard clipboard(NULL);
00101     clipboard.setFacade(facade);
00102     clipboard.open(0);
00103 
00104     clipboard.add(IClipboard::kText, "synergy rocks!");
00105 }
00106 
00107 TEST_F(CMSWindowsClipboardTests, add_replaceValue_valueWasReplaced)
00108 {
00109     CMSWindowsClipboard clipboard(NULL);
00110     clipboard.open(0);
00111 
00112     clipboard.add(IClipboard::kText, "synergy rocks!");
00113     clipboard.add(IClipboard::kText, "maxivista sucks"); // haha, just kidding.
00114 
00115     CString actual = clipboard.get(IClipboard::kText);
00116     EXPECT_EQ("maxivista sucks", actual);
00117 }
00118 
00119 TEST_F(CMSWindowsClipboardTests, open_timeIsZero_returnsTrue)
00120 {
00121     CMSWindowsClipboard clipboard(NULL);
00122 
00123     bool actual = clipboard.open(0);
00124 
00125     EXPECT_EQ(true, actual);
00126 }
00127 
00128 TEST_F(CMSWindowsClipboardTests, open_timeIsOne_returnsTrue)
00129 {
00130     CMSWindowsClipboard clipboard(NULL);
00131 
00132     bool actual = clipboard.open(1);
00133 
00134     EXPECT_EQ(true, actual);
00135 }
00136 
00137 TEST_F(CMSWindowsClipboardTests, close_isOpen_noErrors)
00138 {
00139     CMSWindowsClipboard clipboard(NULL);
00140     clipboard.open(0);
00141 
00142     clipboard.close();
00143 
00144     // can't assert anything
00145 }
00146 
00147 // looks like this test may fail intermittently:
00148 // * http://buildbot.synergy-foss.org:8000/builders/trunk-win32/builds/246/steps/shell_3/logs/stdio
00149 /*TEST_F(CMSWindowsClipboardTests, getTime_openWithNoEmpty_returnsOne)
00150 {
00151     CMSWindowsClipboard clipboard(NULL);
00152     clipboard.open(1);
00153 
00154     CMSWindowsClipboard::Time actual = clipboard.getTime();
00155 
00156     // this behavior is different to that of CClipboard which only
00157     // returns the value passed into open(t) after empty() is called.
00158     EXPECT_EQ(1, actual);
00159 }*/
00160 
00161 // this also fails intermittently:
00162 // http://buildbot.synergy-foss.org:8000/builders/trunk-win32/builds/266/steps/shell_3/logs/stdio
00163 /*TEST_F(CMSWindowsClipboardTests, getTime_openAndEmpty_returnsOne)
00164 {
00165     CMSWindowsClipboard clipboard(NULL);
00166     clipboard.open(1);
00167     clipboard.empty();
00168 
00169     CMSWindowsClipboard::Time actual = clipboard.getTime();
00170 
00171     EXPECT_EQ(1, actual);
00172 }*/
00173 
00174 TEST_F(CMSWindowsClipboardTests, has_withFormatAdded_returnsTrue)
00175 {
00176     CMSWindowsClipboard clipboard(NULL);
00177     clipboard.open(0);
00178     clipboard.empty();
00179     clipboard.add(IClipboard::kText, "synergy rocks!");
00180 
00181     bool actual = clipboard.has(IClipboard::kText);
00182 
00183     EXPECT_EQ(true, actual);
00184 }
00185 
00186 TEST_F(CMSWindowsClipboardTests, has_withNoFormats_returnsFalse)
00187 {
00188     CMSWindowsClipboard clipboard(NULL);
00189     clipboard.open(0);
00190     clipboard.empty();
00191 
00192     bool actual = clipboard.has(IClipboard::kText);
00193 
00194     EXPECT_EQ(false, actual);
00195 }
00196 
00197 TEST_F(CMSWindowsClipboardTests, get_withNoFormats_returnsEmpty)
00198 {
00199     CMSWindowsClipboard clipboard(NULL);
00200     clipboard.open(0);
00201     clipboard.empty();
00202 
00203     CString actual = clipboard.get(IClipboard::kText);
00204 
00205     EXPECT_EQ("", actual);
00206 }
00207 
00208 TEST_F(CMSWindowsClipboardTests, get_withFormatAdded_returnsExpected)
00209 {
00210     CMSWindowsClipboard clipboard(NULL);
00211     clipboard.open(0);
00212     clipboard.empty();
00213     clipboard.add(IClipboard::kText, "synergy rocks!");
00214 
00215     CString actual = clipboard.get(IClipboard::kText);
00216 
00217     EXPECT_EQ("synergy rocks!", actual);
00218 }
00219 
00220 TEST_F(CMSWindowsClipboardTests, isOwnedBySynergy_defaultState_noError)
00221 {
00222     CMSWindowsClipboard clipboard(NULL);
00223     clipboard.open(0);
00224 
00225     bool actual = clipboard.isOwnedBySynergy();
00226 
00227     EXPECT_EQ(true, actual);
00228 }

Generated on Tue May 21 2013 00:00:05 for Synergy by  doxygen 1.7.1