Ejemplo n.º 1
0
static void
test_Local_MkDir_and_Find_Folder(TestBatchRunner *runner) {
    Folder *real_folder = S_folder_with_contents();
    CompoundFileReader *cf_reader = CFReader_open(real_folder);

    TEST_FALSE(runner,
               CFReader_Local_Is_Directory(cf_reader, stuff),
               "Local_Is_Directory returns false for non-existent entry");

    TEST_TRUE(runner, CFReader_MkDir(cf_reader, stuff),
              "MkDir returns true");
    TEST_TRUE(runner,
              Folder_Find_Folder(real_folder, stuff) != NULL,
              "Local_MkDir pass-through");
    TEST_TRUE(runner,
              Folder_Find_Folder(real_folder, stuff)
              == CFReader_Find_Folder(cf_reader, stuff),
              "Local_Find_Folder pass-through");
    TEST_TRUE(runner,
              CFReader_Local_Is_Directory(cf_reader, stuff),
              "Local_Is_Directory pass through");

    Err_set_error(NULL);
    TEST_FALSE(runner, CFReader_MkDir(cf_reader, stuff),
               "MkDir returns false when dir already exists");
    TEST_TRUE(runner, Err_get_error() != NULL,
              "MkDir sets global error when dir already exists");

    Err_set_error(NULL);
    TEST_FALSE(runner, CFReader_MkDir(cf_reader, foo),
               "MkDir returns false when virtual file exists");
    TEST_TRUE(runner, Err_get_error() != NULL,
              "MkDir sets global error when virtual file exists");

    TEST_TRUE(runner,
              CFReader_Find_Folder(cf_reader, foo) == NULL,
              "Virtual file not reported as directory");
    TEST_FALSE(runner, CFReader_Local_Is_Directory(cf_reader, foo),
               "Local_Is_Directory returns false for virtual file");

    DECREF(real_folder);
    DECREF(cf_reader);
}
Ejemplo n.º 2
0
bool_t
CFReaderDH_entry_is_dir(CFReaderDirHandle *self) {
    if (self->elems) {
        CharBuf *name = (CharBuf*)VA_Fetch(self->elems, self->tick);
        if (name) {
            return CFReader_Local_Is_Directory(self->cf_reader, name);
        }
    }
    return false;
}
Ejemplo n.º 3
0
bool
CFReaderDH_Entry_Is_Dir_IMP(CFReaderDirHandle *self) {
    CFReaderDirHandleIVARS *const ivars = CFReaderDH_IVARS(self);
    if (ivars->elems) {
        String *name = (String*)Vec_Fetch(ivars->elems, ivars->tick);
        if (name) {
            return CFReader_Local_Is_Directory(ivars->cf_reader, name);
        }
    }
    return false;
}