| // |
| // 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; |
| } |