void FilesTest::testAbsolute() { std::string path; Gdx.files->getExternalStoragePath(path); path += "/meow"; FileHandle handle = Gdx.files->absoluteHandle(path); handle.remove(); if(handle.exists()) fail(); if(handle.isDirectory()) fail(); if(handle.remove()) fail(); std::vector<FileHandle> handles; handle.list(handles); if(handles.size() != 0) fail(); if(handle.child("meow").exists()) fail(); if(!handle.parent().exists()) fail(); try { std::ifstream in; handle.read(in); in.close(); fail(); } catch(GdxRuntimeException ignored) { } handle.mkdirs(); if(!handle.exists()) fail(); if(!handle.isDirectory()) fail(); handle.list(handles); if(handles.size() != 0) fail(); handle.child("meow").mkdirs(); handle.list(handles); if(handles.size() != 1) fail(); FileHandle child = handles[0]; if(child.name() != "meow") fail(); if(!child.parent().exists()) fail(); if(!handle.removeRecursive()) fail(); if(handle.exists()) fail(); std::ofstream output; handle.write(false, output); output << "moo"; output.close(); if(!handle.exists()) fail(); if(handle.length() != 3) fail(); FileHandle copy = Gdx.files->absoluteHandle(path + "-copy"); copy.remove(); if(copy.exists()) fail(); handle.copyTo(copy); if(!copy.exists()) fail(); if(copy.length() != 3) fail(); FileHandle move = Gdx.files->absoluteHandle(path + "-move"); move.remove(); if(move.exists()) fail(); copy.moveTo(move); if(!move.exists()) fail(); if(move.length() != 3) fail(); move.removeRecursive(); if(move.exists()) fail(); std::ifstream input; handle.read(input); char bytes[7]; input.read(bytes, 3); bytes[3] = 0; if(strcmp("moo", bytes)) fail(); input.close(); handle.write(true, output); output << "cow"; output.close(); if(handle.length() != 6) fail(); handle.readBytes((unsigned char*)bytes, 6); bytes[6] = 0; if(strcmp("moocow", bytes)) fail(); if(handle.isDirectory()) fail(); std::vector<FileHandle> files; handle.list(files); if(files.size() != 0) fail(); if(handle.name() != "meow") fail(); if(handle.nameWithoutExtension() != "meow") fail(); if(handle.extension() != "") fail(); handle.remove(); if(handle.exists()) fail(); if(handle.isDirectory()) fail(); handle.remove(); handle.removeRecursive(); }
void FilesTest::testInternal() { FileHandle handle = Gdx.files->internalHandle("data/badlogic.jpg"); if(!handle.exists()) fail(); if(handle.isDirectory()) fail(); try { handle.remove(); fail(); } catch(GdxRuntimeException expected) { } std::vector<FileHandle> files; handle.list(files); if(files.size() != 0) fail(); if(!handle.parent().exists()) fail(); try { std::ifstream input; handle.read(input); input.close(); //TODO: why??? fail(); } catch(GdxRuntimeException ignored) { } FileHandle dir; dir = Gdx.files->internalHandle("data"); if(!dir.exists()) fail(); if(!dir.isDirectory()) fail(); dir.list(files); if(files.size() == 0) fail(); FileHandle child = dir.child("badlogic.jpg"); if(child.name() != "badlogic.jpg") fail(); if(child.nameWithoutExtension() != "badlogic") fail(); if(child.extension() != "jpg") fail(); if(!child.parent().exists()) fail(); FileHandle copy = Gdx.files->externalHandle("badlogic.jpg-copy"); copy.remove(); if(copy.exists()) fail(); handle.copyTo(copy); if(!copy.exists()) fail(); if(copy.length() != 68465) fail(); copy.remove(); if(copy.exists()) fail(); }