Adam Lesinski | 282e181 | 2014-01-23 18:17:42 -0800 | [diff] [blame] | 1 | // |
| 2 | // Copyright 2011 The Android Open Source Project |
| 3 | // |
| 4 | #include <utils/Vector.h> |
| 5 | #include <utils/KeyedVector.h> |
| 6 | #include <iostream> |
| 7 | #include <cassert> |
| 8 | #include <utils/String8.h> |
| 9 | #include <utility> |
| 10 | |
| 11 | #include "DirectoryWalker.h" |
| 12 | #include "MockDirectoryWalker.h" |
| 13 | #include "FileFinder.h" |
| 14 | |
| 15 | using namespace android; |
| 16 | |
| 17 | using std::pair; |
| 18 | using std::cout; |
| 19 | using std::endl; |
| 20 | |
| 21 | |
| 22 | |
| 23 | int main() |
| 24 | { |
| 25 | |
| 26 | cout << "\n\n STARTING FILE FINDER TESTS" << endl; |
| 27 | String8 path("ApiDemos"); |
| 28 | |
| 29 | // Storage to pass to findFiles() |
| 30 | KeyedVector<String8,time_t> testStorage; |
| 31 | |
| 32 | // Mock Directory Walker initialization. First data, then sdw |
| 33 | Vector< pair<String8,time_t> > data; |
| 34 | data.push( pair<String8,time_t>(String8("hello.png"),3) ); |
| 35 | data.push( pair<String8,time_t>(String8("world.PNG"),3) ); |
| 36 | data.push( pair<String8,time_t>(String8("foo.pNg"),3) ); |
| 37 | // Neither of these should be found |
| 38 | data.push( pair<String8,time_t>(String8("hello.jpg"),3) ); |
| 39 | data.push( pair<String8,time_t>(String8(".hidden.png"),3)); |
| 40 | |
| 41 | DirectoryWalker* sdw = new StringDirectoryWalker(path,data); |
| 42 | |
| 43 | // Extensions to look for |
| 44 | Vector<String8> exts; |
| 45 | exts.push(String8(".png")); |
| 46 | |
| 47 | errno = 0; |
| 48 | |
| 49 | // Make sure we get a valid mock directory walker |
| 50 | // Make sure we finish without errors |
| 51 | cout << "Checking DirectoryWalker..."; |
| 52 | assert(sdw != NULL); |
| 53 | cout << "PASSED" << endl; |
| 54 | |
| 55 | // Make sure we finish without errors |
| 56 | cout << "Running findFiles()..."; |
| 57 | bool findStatus = FileFinder::findFiles(path,exts, testStorage, sdw); |
| 58 | assert(findStatus); |
| 59 | cout << "PASSED" << endl; |
| 60 | |
| 61 | const size_t SIZE_EXPECTED = 3; |
| 62 | // Check to make sure we have the right number of things in our storage |
| 63 | cout << "Running size comparison: Size is " << testStorage.size() << ", "; |
| 64 | cout << "Expected " << SIZE_EXPECTED << "..."; |
| 65 | if(testStorage.size() == SIZE_EXPECTED) |
| 66 | cout << "PASSED" << endl; |
| 67 | else { |
| 68 | cout << "FAILED" << endl; |
| 69 | errno++; |
| 70 | } |
| 71 | |
| 72 | // Check to make sure that each of our found items has the right extension |
| 73 | cout << "Checking Returned Extensions..."; |
| 74 | bool extsOkay = true; |
| 75 | String8 wrongExts; |
| 76 | for (size_t i = 0; i < SIZE_EXPECTED; ++i) { |
| 77 | String8 testExt(testStorage.keyAt(i).getPathExtension()); |
| 78 | testExt.toLower(); |
| 79 | if (testExt != ".png") { |
| 80 | wrongExts += testStorage.keyAt(i); |
| 81 | wrongExts += "\n"; |
| 82 | extsOkay = false; |
| 83 | } |
| 84 | } |
| 85 | if (extsOkay) |
| 86 | cout << "PASSED" << endl; |
| 87 | else { |
| 88 | cout << "FAILED" << endl; |
| 89 | cout << "The following extensions didn't check out" << endl << wrongExts; |
| 90 | } |
| 91 | |
| 92 | // Clean up |
| 93 | delete sdw; |
| 94 | |
| 95 | if(errno == 0) { |
| 96 | cout << "ALL TESTS PASSED" << endl; |
| 97 | } else { |
| 98 | cout << errno << " TESTS FAILED" << endl; |
| 99 | } |
| 100 | return errno; |
| 101 | } |