[cosmetics] update date in GPL header
[vuplus_xbmc] / xbmc / utils / test / TestAsyncFileCopy.cpp
1 /*
2  *      Copyright (C) 2005-2013 Team XBMC
3  *      http://www.xbmc.org
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 as published by
7  *  the Free Software Foundation; either version 2, or (at your option)
8  *  any later version.
9  *
10  *  This Program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with XBMC; see the file COPYING.  If not, see
17  *  <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 #include "utils/AsyncFileCopy.h"
22 #include "filesystem/File.h"
23
24 #include "test/TestUtils.h"
25
26 #include "gtest/gtest.h"
27
28 static const char refdata[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
29                               "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
30                               "\x11\x12\x13\x14\x15\x16\x17\x18"
31                               "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
32                               "\x21\x22\x23\x24\x25\x26\x27\x28"
33                               "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30";
34
35 TEST(TestAsyncFileCopy, General)
36 {
37   CAsyncFileCopy c;
38   XFILE::CFile *f1, *f2;
39   char vardata[sizeof(refdata)];
40
41   ASSERT_TRUE((f1 = XBMC_CREATETEMPFILE("")));
42   ASSERT_TRUE((f2 = XBMC_CREATETEMPFILE(".copy")));
43
44   EXPECT_EQ((int)sizeof(refdata), f1->Write(refdata, sizeof(refdata)));
45   f1->Close();
46   f2->Close();
47   EXPECT_TRUE(c.Copy(XBMC_TEMPFILEPATH(f1), XBMC_TEMPFILEPATH(f2), ""));
48   EXPECT_TRUE(f2->Open(XBMC_TEMPFILEPATH(f2)));
49   EXPECT_EQ(sizeof(refdata), f2->Read(vardata, sizeof(refdata)));
50   f2->Close();
51   EXPECT_TRUE(!memcmp(vardata, refdata, sizeof(refdata)));
52
53   EXPECT_TRUE(XBMC_DELETETEMPFILE(f1));
54   EXPECT_TRUE(XBMC_DELETETEMPFILE(f2));
55 }