anchor.diff:        ]);
         await db.close();
       });
  +
  +    test('open in sub directory', () async {
  +      var databasesPath = await factory.getDatabasesPath();
  +      String path = join(databasesPath, 'sub_that_should_not_exists');
  +      try {
  +        await new Directory(path).delete(recursive: true);
  +      } catch (_) {}
  +      var dbPath = join(path, 'open.db');
  +      var db = await factory.openDatabase(dbPath);
  +      try {} finally {
  +        await db.close();
  +      }
  +    });
  +
  +    test('open in sub sub directory', () async {
  +      // await Sqflite.devSetDebugModeOn(true);
  +      var databasesPath = await factory.getDatabasesPath();
  +      String path =
  +          join(databasesPath, 'sub2_that_should_not_exists', 'sub_sub');
  +      try {
  +        await new Directory(path).delete(recursive: true);
  +      } catch (_) {}
  +      expect(await new Directory(path).exists(), false);
  +      var dbPath = join(path, 'open.db');
  +      var db = await factory.openDatabase(dbPath);
  +      try {} finally {
  +        await db.close();
  +      }
  +    });
     }
   }
   
  
positive.code:     onDowngradeCalled = false;
      onUpgradeCalled = false;
    }
  
  
    Future<Database> open(String path, {int version}) async {
      reset();
  
negative.code:   bool onDowngradeCalled;
    bool onUpgradeCalled;
  
    OnDatabaseCreateFn onCreate;
    OnDatabaseConfigureFn onConfigure;
    OnDatabaseVersionChangeFn onDowngrade;
  