trying to track down why undo doesn't remove xfade rendering on OS X
[ardour.git] / libs / pbd / test / xpath.cc
index 9f31c8f53a1bfe729d2a84ffdaedf6dfa0506aa0..f0e976eabd3fb5dc2a2c61e2af1fa0afc2c53de6 100644 (file)
@@ -8,17 +8,17 @@ CPPUNIT_TEST_SUITE_REGISTRATION (XPathTest);
 
 using namespace std;
 
-static string const prefix = "../../libs/pbd/test/";
+static string const prefix = "../libs/pbd/test/";
 
 void
 XPathTest::testMisc ()
 {
-       cout << "Test 1: RosegardenPatchFile.xml: Find all banks in the file" << endl;
+//     cout << "Test 1: RosegardenPatchFile.xml: Find all banks in the file" << endl;
        XMLTree  doc(prefix + "RosegardenPatchFile.xml");
        // "//bank" gives as last element an empty element libxml bug????
-       boost::shared_ptr<XMLSharedNodeList> result = doc.root()->find("//bank[@name]");
+       boost::shared_ptr<XMLSharedNodeList> result = doc.find("//bank[@name]");
        
-       cout << "Found " << result->size() << " banks" << endl;
+//     cout << "Found " << result->size() << " banks" << endl;
        assert(result->size() == 8);
 //     int counter = 1;
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
@@ -31,9 +31,9 @@ XPathTest::testMisc ()
                }
        }
        
-       cout << endl << endl << "Test 2: RosegardenPatchFile.xml: Find all programs whose program name contains 'Latin'" << endl;
+//     cout << endl << endl << "Test 2: RosegardenPatchFile.xml: Find all programs whose program name contains 'Latin'" << endl;
        
-       result = doc.root()->find("/rosegarden-data/studio/device/bank/program[contains(@name, 'Latin')]");
+       result = doc.find("/rosegarden-data/studio/device/bank/program[contains(@name, 'Latin')]");
        assert(result->size() == 5);
        
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
@@ -45,7 +45,7 @@ XPathTest::testMisc ()
        
        // We have to allocate a new document here, or we get segfaults
        XMLTree doc2(prefix + "TestSession.ardour");
-       result = doc2.root()->find("/Session/Sources/Source[contains(@captured-for, 'Guitar')]");
+       result = doc2.find("/Session/Sources/Source[contains(@captured-for, 'Guitar')]");
        assert(result->size() == 16);
        
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
@@ -53,9 +53,9 @@ XPathTest::testMisc ()
 //                     "' with id: " << (*i)->property("id")->value() << endl;
        }
        
-       cout << endl << endl << "Test 4: TestSession.ardour: Find all elements with an 'id' and 'name' attribute" << endl;
+//     cout << endl << endl << "Test 4: TestSession.ardour: Find all elements with an 'id' and 'name' attribute" << endl;
        
-       result = doc2.root()->find("//*[@id and @name]");
+       result = doc2.find("//*[@id and @name]");
        
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
                assert((*i)->property("id"));
@@ -65,24 +65,24 @@ XPathTest::testMisc ()
 //                             "' and name: " << (*i)->property("name")->value() << endl;
        }
        
-       cout << endl << endl << "Test 5: ProtoolsPatchFile.midnam: Get Banks and Patches for 'Name Set 1'" << endl;
+//     cout << endl << endl << "Test 5: ProtoolsPatchFile.midnam: Get Banks and Patches for 'Name Set 1'" << endl;
        
        // We have to allocate a new document here, or we get segfaults
        XMLTree doc3(prefix + "ProtoolsPatchFile.midnam");
-       result = doc3.root()->find("/MIDINameDocument/MasterDeviceNames/ChannelNameSet[@Name='Name Set 1']/PatchBank");
+       result = doc3.find("/MIDINameDocument/MasterDeviceNames/ChannelNameSet[@Name='Name Set 1']/PatchBank");
        assert(result->size() == 16);
        
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
 //             cout << "\t found Patchbank " << (*i)->property("Name")->value() << endl;
-               boost::shared_ptr<XMLSharedNodeList> patches = (*i)->find("//Patch[@Name]");
+               boost::shared_ptr<XMLSharedNodeList> patches = doc3.find ("//Patch[@Name]", i->get());
                for(XMLSharedNodeList::const_iterator p = patches->begin(); p != patches->end(); ++p) {
 //                     cout << "\t\t found patch number " << (*p)->property("Number")->value() 
 //                          << " with name: " << (*p)->property("Name")->value()  << endl;
                }
        }
 
-       cout << endl << endl << "Test 5: ProtoolsPatchFile.midnam: Find attribute nodes" << endl;
-       result = doc3.root()->find("//@Value");
+//     cout << endl << endl << "Test 5: ProtoolsPatchFile.midnam: Find attribute nodes" << endl;
+       result = doc3.find("//@Value");
        
        for(XMLSharedNodeList::const_iterator i = result->begin(); i != result->end(); ++i) {
                boost::shared_ptr<XMLNode> node = (*i);
@@ -90,8 +90,8 @@ XPathTest::testMisc ()
 //                  << " value: " << node->attribute_value() << endl;
        }       
        
-       cout << endl << endl << "Test 6: ProtoolsPatchFile.midnam: Find available channels on 'Name Set 1'" << endl;
-       result = doc3.root()->find(
+//     cout << endl << endl << "Test 6: ProtoolsPatchFile.midnam: Find available channels on 'Name Set 1'" << endl;
+       result = doc3.find(
                "//ChannelNameSet[@Name = 'Name Set 1']//AvailableChannel[@Available = 'true']/@Channel");
        
        assert(result->size() == 15);