if ($auth_method == 'OAuth') {
        _wl(' using OAuth auth with consumerKey="' . $auth_oauth_consumer_key . '"');
        $oauth = new OSM_Auth_OAuth($auth_oauth_consumer_key, $auth_oauth_consumer_secret);
        $oauth->setToken($auth_oauth_token, $auth_oauth_secret);
        $osmApi->setCredentials($oauth);
    }
}
// http://www.openstreetmap.org/api/0.6/node/1326928399
$xmlQuery = '
<osm-script>
 <query type="node">
  <has-kv k="name" v="Castel Fleuri"/>
  <has-kv k="tourism" v="hotel"/>
  <has-kv k="addr:street" v="Rue Groison"/>
  <has-kv k="addr:city" v="Tours"/>
 </query>
 <print/>
</osm-script>
';
$osmApi->queryOApi($xmlQuery);
$nodes = $osmApi->getNodes();
_assert(count($nodes) == 1);
$tagName = 'yapafo.net::test::oapi';
if (($node = $nodes[0]->getTag($tagName)) != null) {
    $nodes[0]->removeTag($tagName);
} else {
    $nodes[0]->addTag($tagName, '123');
}
$osmApi->saveChanges('Cyrille37 test');
$time_end = microtime(true);
_wl('Test well done in ' . number_format($time_end - $time_start, 3) . ' second(s).');
// http://api06.dev.openstreetmap.org/api/0.6/relation/500
// http://api06.dev.openstreetmap.org/api/0.6/way/8184
// http://api06.dev.openstreetmap.org/api/0.6/node/611571
// get a node
$node = $osmApi->getNode('611571');
// add a tag
$tagName = 'yapafo.net::test::' . time();
$tagValue = 'Have a nice dev ;-)';
$node->addTag(new OSM_Objects_Tag($tagName, $tagValue));
$tags = $node->findTags(array($tagName => $tagValue));
_assert(count($tags) == 1);
_assert($node->hasTags(array($tagName => $tagValue)));
// save changes
_assert($node->isDirty());
_wl(' saving changes...');
$osmApi->saveChanges('A yapafo.net test');
_assert($node->isDirty());
$tags = $node->findTags(array($tagName => $tagValue));
_assert(count($tags) == 1);
_assert($node->hasTags(array($tagName => $tagValue)));
// remove then reload object to get real changes
$osmApi->removeObject(OSM_Api::OBJTYPE_NODE, '611571');
$node = $osmApi->getNode('611571');
$tags = $node->findTags(array($tagName => $tagValue));
_assert(count($tags) == 1);
_assert($node->hasTags(array($tagName => $tagValue)));
// test a node's tag modification
$tagName = 'yapafo.net::test::modify';
$tagValue = '1';
$osmApi->removeAllObjects();
$node = $osmApi->getNode('611571');