/** Checks the XQuery doc() function. */ @Test public void docTest() { createDoc(); final String func = DOC.args(NAME); check(func + "//*[text() = '1']"); check(func + "//*[text() contains text '2']"); check(func + "//a[. = '1']"); check(func + "//xml[a = '1']"); check(func + "/.[.//text() contains text '1']"); check(func + "[.//text() contains text '1']"); check("for $s in ('x', '') return " + func + "//*[text() = $s]", ""); }
/** Tests all commands where read permission is needed. */ @Test public void readPermsNeeded() { ok(new Grant("read", NAME), adminSession); ok(new Open(NAME), testSession); ok(new List(NAME), testSession); ok(new InfoDB(), testSession); ok(new InfoStorage("1", "2"), testSession); no(new Get("DBPATH"), testSession); ok(new Get(MainOptions.QUERYINFO), testSession); ok(new Set(MainOptions.QUERYINFO, false), testSession); // XQuery read ok(new XQuery("//xml"), testSession); ok(new Find(NAME), testSession); // repo stuff no(new RepoInstall(REPO + "/pkg3.xar", null), testSession); ok(new RepoList(), testSession); no(new RepoDelete("http://www.pkg3.com", null), testSession); // XQuery update no(new XQuery("for $n in " + DOC.args(NAME) + "//xml return delete node $n"), testSession); no(new XQuery(_DB_CREATE.args(NAME)), testSession); no(new Optimize(), testSession); no(new CreateDB(NAME, "<xml/>"), testSession); no(new Replace(RENAMED, "<xml />"), testSession); no(new Rename(RENAMED, RENAMED + '2'), testSession); no(new CreateIndex("SUMMARY"), testSession); no(new DropDB(NAME), testSession); no(new DropIndex("SUMMARY"), testSession); no(new CreateUser(NAME, NAME), testSession); no(new DropUser(NAME), testSession); no(new Export(Prop.TMP + NAME), testSession); no(new Kill("dada"), testSession); no(new ShowUsers("Users"), testSession); no(new Grant("read", NAME), testSession); no(new Grant("none", NAME), testSession); no(new AlterPassword(NAME, NAME), testSession); no(new AlterUser(NAME, "test2"), testSession); no(new Flush(), testSession); ok(new Close(), testSession); }