basictests.java

来自「linux subdivision ying gai ke yi le ba」· Java 代码 · 共 869 行 · 第 1/3 页

JAVA
869
字号

        thisTest.checkStatus();

        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/B/E"}, null, false);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/H"}, null, true);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/G"}, null, true);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/B/F"}, null, true);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/C"}, null, true);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/B/X"}, null, true);
        file = new File(thisTest.getWorkingCopy(), "iota");
        file.delete();
        client.remove(new String[] {file.getAbsolutePath()}, null, true);
        file = new File(thisTest.getWorkingCopy(), "A/D/gamma");
        file.delete();
        client.remove(new String[] {file.getAbsolutePath()}, null, false);
        client.remove(new String[] {file.getAbsolutePath()}, null, true);
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/B/E"}, null, false);
        thisTest.getWc().setItemTextStatus("A/D/H",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/chi",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/omega",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/psi",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G/rho",Status.Kind.deleted);
        thisTest.getWc().setItemPropStatus("A/D/G/rho", Status.Kind.none);
        thisTest.getWc().setItemTextStatus("A/D/G/pi",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G/tau",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/B/E",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/B/E/alpha",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/B/E/beta",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/B/F",Status.Kind.deleted);
        thisTest.getWc().setItemPropStatus("A/B/F", Status.Kind.none);
        thisTest.getWc().setItemTextStatus("A/C",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("iota",Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/gamma",Status.Kind.deleted);
        thisTest.getWc().removeItem("A/B/X");
        thisTest.getWc().removeItem("A/B/X/xi");
        thisTest.getWc().removeItem("A/C/sigma");
        thisTest.getWc().removeItem("A/C/Q");
        thisTest.checkStatus();
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D"},null, true);
        thisTest.getWc().setItemTextStatus("A/D", Status.Kind.deleted);
        thisTest.getWc().removeItem("A/D/Y");
        thisTest.checkStatus();

        assertFalse("failed to remove text modified file", new File(thisTest.getWorkingCopy(), "A/D/G/rho").exists());
        assertFalse("failed to remove prop modified file", new File(thisTest.getWorkingCopy(), "A/D/H/chi").exists());
        assertFalse("failed to remove unversioned file", new File(thisTest.getWorkingCopy(), "A/C/sigma").exists());
        assertFalse("failed to remove unmodified file", new File(thisTest.getWorkingCopy(), "A/B/E/alpha").exists());
        file = new File(thisTest.getWorkingCopy(),"A/B/F");
        assertTrue("removed versioned dir", file.exists() && file.isDirectory());
        assertFalse("failed to remove unversioned dir", new File(thisTest.getWorkingCopy(), "A/C/Q").exists());
        assertFalse("failed to remove added dir", new File(thisTest.getWorkingCopy(), "A/B/X").exists());

        file = new File(thisTest.getWorkingCopy().getAbsolutePath(),"foo");
        pw = new PrintWriter(new FileOutputStream(file));
        pw.print("unversioned foo");
        pw.close();
        client.remove(new String[] {file.getAbsolutePath()}, null, true);
        assertFalse("failed to remove unversioned file foo", file.exists());
        client.remove(new String[] {file.getAbsolutePath()}, null, true);
        client.remove(new String[] {thisTest.getURL()+"/iota"}, "delete iota URL", false);
    }

    public void testBasicCheckoutDeleted() throws Throwable
    {
        OneTest thisTest = new OneTest();
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D"}, null, true);
        thisTest.getWc().setItemTextStatus("A/D", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G/rho", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G/pi", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/G/tau", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/chi", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/psi", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/H/omega", Status.Kind.deleted);
        thisTest.getWc().setItemTextStatus("A/D/gamma", Status.Kind.deleted);
        thisTest.checkStatus();
        assertEquals("wrong revision from commit",client.commit(new String[]{thisTest.getWorkingCopy().getAbsolutePath()}, "log message", true),2);
        thisTest.getWc().removeItem("A/D");
        thisTest.getWc().removeItem("A/D/G");
        thisTest.getWc().removeItem("A/D/G/rho");
        thisTest.getWc().removeItem("A/D/G/pi");
        thisTest.getWc().removeItem("A/D/G/tau");
        thisTest.getWc().removeItem("A/D/H");
        thisTest.getWc().removeItem("A/D/H/chi");
        thisTest.getWc().removeItem("A/D/H/psi");
        thisTest.getWc().removeItem("A/D/H/omega");
        thisTest.getWc().removeItem("A/D/gamma");
        thisTest.checkStatus();
        client.checkout(thisTest.getURL()+"/A/D", thisTest.getWorkingCopy().getAbsolutePath()+"/new_D", new Revision.Number(1), true);
    }

    public void testBasicNodeKindChange() throws Throwable
    {
        OneTest thisTest = new OneTest();
        client.remove(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/gamma"}, null, false);
        thisTest.getWc().setItemTextStatus("A/D/gamma", Status.Kind.deleted);
        thisTest.checkStatus();
        try
        {
            client.mkdir(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/gamma"}, null);
            fail("can change node kind");
        }
        catch(ClientException e)
        {

        }
        thisTest.checkStatus();
        assertEquals("wrong revision number from commit", client.commit(new String[]{thisTest.getWorkingCopy().getAbsolutePath()},"log message", true), 2);
        thisTest.getWc().removeItem("A/D/gamma");
        thisTest.checkStatus();

        try
        {
            client.mkdir(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/gamma"}, null);
            fail("can change node kind");
        }
        catch(ClientException e)
        {

        }
        thisTest.checkStatus();
        client.update(thisTest.getWorkingCopy().getAbsolutePath(), null, true);
        thisTest.checkStatus();
        client.mkdir(new String[] {thisTest.getWorkingCopy().getAbsolutePath()+"/A/D/gamma"}, null);
        thisTest.getWc().addItem("A/D/gamma", null);
        thisTest.getWc().setItemTextStatus("A/D/gamma", Status.Kind.added);
        thisTest.checkStatus();
    }

    public void testBasicImport() throws Throwable
    {
        OneTest thisTest = new OneTest();
        File file = new File(thisTest.getWorkingCopy().getAbsolutePath(),"new_file");
        PrintWriter pw = new PrintWriter(new FileOutputStream(file));
        pw.print("some text");
        pw.close();
        client.doImport(file.getAbsolutePath(), thisTest.getURL()+"/dirA/dirB/new_file","log message for new import", true);
        file.delete();
        assertEquals("wrong revision from commit",client.update(thisTest.getWorkingCopy().getAbsolutePath(), null, true),2);
        thisTest.getWc().addItem("dirA", null);
        thisTest.getWc().setItemWorkingCopyRevision("dirA",2);
        thisTest.getWc().addItem("dirA/dirB", null);
        thisTest.getWc().setItemWorkingCopyRevision("dirA/dirB",2);
        thisTest.getWc().addItem("dirA/dirB/new_file", "some text");
        thisTest.getWc().setItemWorkingCopyRevision("dirA/dirB/new_file",2);
        thisTest.checkStatus();
    }

    public void testBasicCat() throws Throwable
    {
        OneTest thisTest = new OneTest();
        File mu = new File(thisTest.getWorkingCopy(), "A/mu");
        PrintWriter pw = new PrintWriter(new FileOutputStream(mu, true));
        pw.print("some text");
        pw.close();
        byte[] content = client.fileContent(thisTest.getWorkingCopy().getAbsolutePath()+"/A/mu", null);
        byte[] testContent = thisTest.getWc().getItemContent("A/mu").getBytes();
        assertTrue("content changed", Arrays.equals(content, testContent));
    }

    public void testBasicLs() throws Throwable
    {
        OneTest thisTest = new OneTest();

        DirEntry[] entries = client.list(thisTest.getWorkingCopy().getAbsolutePath(), null, false);
        thisTest.getWc().check(entries,"", false);
        entries = client.list(thisTest.getWorkingCopy().getAbsolutePath()+"/A", null, false);
        thisTest.getWc().check(entries,"A", false);
        entries = client.list(thisTest.getWorkingCopy().getAbsolutePath()+"/A", Revision.BASE, false);
        thisTest.getWc().check(entries,"A", false);
        entries = client.list(thisTest.getWorkingCopy().getAbsolutePath()+"/A/mu", null, false);
        thisTest.getWc().check(entries,"A/mu");
    }

    public void testBasicAddIgnores() throws Throwable
    {
        OneTest thisTest = new OneTest();
        File dir = new File(thisTest.getWorkingCopy(), "dir");
        dir.mkdir();
        File fileC = new File(dir, "foo.c");
        new FileOutputStream(fileC).close();
        File fileO = new File(dir, "foo.o");
        new FileOutputStream(fileO).close();
        client.add(dir.getAbsolutePath(), true);
        thisTest.getWc().addItem("dir", null);
        thisTest.getWc().setItemTextStatus("dir",Status.Kind.added);
        thisTest.getWc().addItem("dir/foo.c", "");
        thisTest.getWc().setItemTextStatus("dir/foo.c",Status.Kind.added);
        thisTest.getWc().addItem("dir/foo.o", "");
        thisTest.getWc().setItemTextStatus("dir/foo.o",Status.Kind.ignored);
        thisTest.getWc().setItemNodeKind("dir/foo.o", NodeKind.unknown);
        thisTest.checkStatus();
    }

    public void testBasicImportIgnores() throws Throwable
    {
        OneTest thisTest = new OneTest();
        File dir = new File(thisTest.getWorkingCopy(), "dir");
        dir.mkdir();
        File fileC = new File(dir, "foo.c");
        new FileOutputStream(fileC).close();
        File fileO = new File(dir, "foo.o");
        new FileOutputStream(fileO).close();
        client.doImport(dir.getAbsolutePath(), thisTest.getURL()+"/dir","log message for import", true);
        removeDirectoryWithContent(dir);
        assertEquals("wrong revision from update", 2, client.update(thisTest.getWorkingCopy().getAbsolutePath(), null, true));
        thisTest.getWc().addItem("dir", null);
        thisTest.getWc().addItem("dir/foo.c", "");
        thisTest.checkStatus();
    */

/*
  'do not import ignored files in imported dirs'

  # The bug was that
  #
  #   $ svn import dir
  #
  # where dir contains some items that match the ignore list and some
  # do not would add all items, ignored or not.
  #
  # This has been fixed by testing each item with the new
  # svn_wc_is_ignored function.

  sbox.build()
  wc_dir = sbox.wc_dir

  dir_path = os.path.join(wc_dir, 'dir')
  foo_c_path = os.path.join(dir_path, 'foo.c')
  foo_o_path = os.path.join(dir_path, 'foo.o')

  os.mkdir(dir_path, 0755)
  open(foo_c_path, 'w')
  open(foo_o_path, 'w')

  # import new dir into repository
  url = svntest.main.current_repo_url + '/dir'

  output, errput = svntest.actions.run_and_verify_svn(
    None, None, [], 'import',
    '--username', svntest.main.wc_author,
    '--password', svntest.main.wc_passwd,
    '-m', 'Log message for new import',
    dir_path, url)

  lastline = string.strip(output.pop())
  cm = re.compile ("(Committed|Imported) revision [0-9]+.")
  match = cm.search (lastline)
  if not match:
    ### we should raise a less generic error here. which?
    raise svntest.actions.SVNUnexpectedOutput

  # remove (uncontrolled) local dir
  svntest.main.safe_rmtree(dir_path)

  # Create expected disk tree for the update (disregarding props)
  expected_disk = svntest.main.greek_state.copy()
  expected_disk.add({
    'dir/foo.c' : Item(''),
    })

  # Create expected status tree for the update (disregarding props).
  # Newly imported file should be at revision 2.
  expected_status = svntest.actions.get_virginal_state(wc_dir, 2)
  expected_status.add({
    'dir' : Item(status='  ', wc_rev=2, repos_rev=2),
    'dir/foo.c' : Item(status='  ', wc_rev=2, repos_rev=2),
    })

  # Create expected output tree for the update.
  expected_output = svntest.wc.State(wc_dir, {
    'dir' : Item(status='A '),
    'dir/foo.c' : Item(status='A '),
  })

  # do update and check three ways
  svntest.actions.run_and_verify_update(wc_dir,
                                        expected_output,
                                        expected_disk,
                                        expected_status,
                                        None, None, None,
                                        None, None, 1)

*/
    //}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?