• Main Page
  • Classes
  • Files
  • File List

CXWindowsClipboardTests.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 <iostream>
00020 #include <gtest/gtest.h>
00021 #include "CXWindowsClipboard.h"
00022 
00023 class CXWindowsClipboardTests : public ::testing::Test
00024 {
00025 protected:
00026     virtual void
00027     SetUp()
00028     {
00029         m_display = XOpenDisplay(NULL);
00030         int screen = DefaultScreen(m_display);
00031         Window root = XRootWindow(m_display, screen);
00032         
00033         XSetWindowAttributes attr;
00034         attr.do_not_propagate_mask = 0;
00035         attr.override_redirect = True;
00036         attr.cursor = Cursor();
00037         
00038         m_window = XCreateWindow(
00039             m_display, root, 0, 0, 1, 1, 0, 0,
00040             InputOnly, CopyFromParent, 0, &attr);
00041     }
00042 
00043     virtual void
00044     TearDown()
00045     {
00046         XDestroyWindow(m_display, m_window);
00047         XCloseDisplay(m_display);
00048     }
00049 
00050     CXWindowsClipboard&
00051     createClipboard()
00052     {
00053         CXWindowsClipboard* clipboard;
00054         clipboard = new CXWindowsClipboard(m_display, m_window, 0);
00055         clipboard->open(0); // needed to empty the clipboard
00056         clipboard->empty(); // needed to own the clipboard
00057         return *clipboard;
00058     }
00059 
00060     Display* m_display;
00061     Window m_window;
00062 };
00063 
00064 TEST_F(CXWindowsClipboardTests, empty_openCalled_returnsTrue)
00065 {
00066     CXWindowsClipboard clipboard = createClipboard();
00067     
00068     bool actual = clipboard.empty();
00069     
00070     EXPECT_EQ(true, actual);
00071 }
00072 
00073 TEST_F(CXWindowsClipboardTests, empty_singleFormat_hasReturnsFalse)
00074 {
00075     CXWindowsClipboard clipboard = createClipboard();
00076     clipboard.add(CXWindowsClipboard::kText, "synergy rocks!");
00077     
00078     clipboard.empty();
00079     
00080     bool actual = clipboard.has(CXWindowsClipboard::kText);
00081     EXPECT_FALSE(actual);
00082 }
00083 
00084 TEST_F(CXWindowsClipboardTests, add_newValue_valueWasStored)
00085 {
00086     CXWindowsClipboard clipboard = createClipboard();
00087     
00088     clipboard.add(IClipboard::kText, "synergy rocks!");
00089     
00090     CString actual = clipboard.get(IClipboard::kText);
00091     EXPECT_EQ("synergy rocks!", actual);
00092 }
00093 
00094 TEST_F(CXWindowsClipboardTests, add_replaceValue_valueWasReplaced)
00095 {
00096     CXWindowsClipboard clipboard = createClipboard();
00097     
00098     clipboard.add(IClipboard::kText, "synergy rocks!");
00099     clipboard.add(IClipboard::kText, "maxivista sucks"); // haha, just kidding.
00100     
00101     CString actual = clipboard.get(IClipboard::kText);
00102     EXPECT_EQ("maxivista sucks", actual);
00103 }
00104 
00105 TEST_F(CXWindowsClipboardTests, close_isOpen_noErrors)
00106 {
00107     CXWindowsClipboard clipboard = createClipboard();
00108     
00109     // clipboard opened in createClipboard()
00110     clipboard.close();
00111     
00112     // can't assert anything
00113 }
00114 
00115 TEST_F(CXWindowsClipboardTests, has_withFormatAdded_returnsTrue)
00116 {
00117     CXWindowsClipboard clipboard = createClipboard();
00118     clipboard.add(IClipboard::kText, "synergy rocks!");
00119     
00120     bool actual = clipboard.has(IClipboard::kText);
00121     
00122     EXPECT_EQ(true, actual);
00123 }
00124 
00125 TEST_F(CXWindowsClipboardTests, has_withNoFormats_returnsFalse)
00126 {
00127     CXWindowsClipboard clipboard = createClipboard();
00128     
00129     bool actual = clipboard.has(IClipboard::kText);
00130     
00131     EXPECT_FALSE(actual);
00132 }
00133 
00134 TEST_F(CXWindowsClipboardTests, get_withNoFormats_returnsEmpty)
00135 {
00136     CXWindowsClipboard clipboard = createClipboard();
00137     
00138     CString actual = clipboard.get(IClipboard::kText);
00139     
00140     EXPECT_EQ("", actual);
00141 }
00142 
00143 TEST_F(CXWindowsClipboardTests, get_withFormatAdded_returnsExpected)
00144 {
00145     CXWindowsClipboard clipboard = createClipboard();
00146     clipboard.add(IClipboard::kText, "synergy rocks!");
00147     
00148     CString actual = clipboard.get(IClipboard::kText);
00149     
00150     EXPECT_EQ("synergy rocks!", actual);
00151 }

Generated on Sat May 18 2013 00:00:04 for Synergy by  doxygen 1.7.1