| // | |
| // Copyright 2011 The Android Open Source Project | |
| // | |
| #include <utils/Vector.h> | |
| #include <utils/KeyedVector.h> | |
| #include <iostream> | |
| #include <cassert> | |
| #include <utils/String8.h> | |
| #include <utility> | |
| #include "DirectoryWalker.h" | |
| #include "MockDirectoryWalker.h" | |
| #include "FileFinder.h" | |
| using namespace android; | |
| using std::pair; | |
| using std::cout; | |
| using std::endl; | |
| int main() | |
| { | |
| cout << "\n\n STARTING FILE FINDER TESTS" << endl; | |
| String8 path("ApiDemos"); | |
| // Storage to pass to findFiles() | |
| KeyedVector<String8,time_t> testStorage; | |
| // Mock Directory Walker initialization. First data, then sdw | |
| Vector< pair<String8,time_t> > data; | |
| data.push( pair<String8,time_t>(String8("hello.png"),3) ); | |
| data.push( pair<String8,time_t>(String8("world.PNG"),3) ); | |
| data.push( pair<String8,time_t>(String8("foo.pNg"),3) ); | |
| // Neither of these should be found | |
| data.push( pair<String8,time_t>(String8("hello.jpg"),3) ); | |
| data.push( pair<String8,time_t>(String8(".hidden.png"),3)); | |
| DirectoryWalker* sdw = new StringDirectoryWalker(path,data); | |
| // Extensions to look for | |
| Vector<String8> exts; | |
| exts.push(String8(".png")); | |
| errno = 0; | |
| // Make sure we get a valid mock directory walker | |
| // Make sure we finish without errors | |
| cout << "Checking DirectoryWalker..."; | |
| assert(sdw != NULL); | |
| cout << "PASSED" << endl; | |
| // Make sure we finish without errors | |
| cout << "Running findFiles()..."; | |
| bool findStatus = FileFinder::findFiles(path,exts, testStorage, sdw); | |
| assert(findStatus); | |
| cout << "PASSED" << endl; | |
| const size_t SIZE_EXPECTED = 3; | |
| // Check to make sure we have the right number of things in our storage | |
| cout << "Running size comparison: Size is " << testStorage.size() << ", "; | |
| cout << "Expected " << SIZE_EXPECTED << "..."; | |
| if(testStorage.size() == SIZE_EXPECTED) | |
| cout << "PASSED" << endl; | |
| else { | |
| cout << "FAILED" << endl; | |
| errno++; | |
| } | |
| // Check to make sure that each of our found items has the right extension | |
| cout << "Checking Returned Extensions..."; | |
| bool extsOkay = true; | |
| String8 wrongExts; | |
| for (size_t i = 0; i < SIZE_EXPECTED; ++i) { | |
| String8 testExt(testStorage.keyAt(i).getPathExtension()); | |
| testExt.toLower(); | |
| if (testExt != ".png") { | |
| wrongExts += testStorage.keyAt(i); | |
| wrongExts += "\n"; | |
| extsOkay = false; | |
| } | |
| } | |
| if (extsOkay) | |
| cout << "PASSED" << endl; | |
| else { | |
| cout << "FAILED" << endl; | |
| cout << "The following extensions didn't check out" << endl << wrongExts; | |
| } | |
| // Clean up | |
| delete sdw; | |
| if(errno == 0) { | |
| cout << "ALL TESTS PASSED" << endl; | |
| } else { | |
| cout << errno << " TESTS FAILED" << endl; | |
| } | |
| return errno; | |
| } |