public function testAddAndDeleteSubscriptionToQueryV2()
 {
     $developerKey = constant('TESTS_ZEND_GDATA_YOUTUBE_DEVELOPER_KEY');
     $clientId = constant('TESTS_ZEND_GDATA_YOUTUBE_CLIENT_ID');
     $service = YouTube::AUTH_SERVICE_NAME;
     $authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin';
     $httpClient = ClientLogin::getHttpClient($this->user, $this->pass, $service, null, 'Google-UnitTests-1.0', null, null, $authenticationURL);
     $yt = new YouTube($httpClient, 'Google-UnitTests-1.0', $clientId, $developerKey);
     $yt->setMajorProtocolVersion(2);
     $queryStringToSubscribeTo = 'zend';
     // Test for deletion first in case something went wrong
     // last time the test was run (network, etc...)
     $subscriptionFeed = $yt->getSubscriptionFeed($this->ytAccount);
     $successDeletionUpFront = true;
     $message = null;
     foreach ($subscriptionFeed as $subscriptionEntry) {
         $subscriptionType = null;
         $categories = $subscriptionEntry->getCategory();
         // examine the correct category element since there are multiple
         foreach ($categories as $category) {
             if ($category->getScheme() == 'http://gdata.youtube.com/schemas/2007/' . 'subscriptiontypes.cat') {
                 $subscriptionType = $category->getTerm();
             }
         }
         if ($subscriptionType == 'query') {
             if ($subscriptionEntry->getQueryString() == $queryStringToSubscribeTo) {
                 try {
                     $subscriptionEntry->delete();
                 } catch (App\Exception $e) {
                     $message = $e->getMessage();
                     $successDeletionUpFront = false;
                 }
             }
         }
     }
     $this->assertTrue($successDeletionUpFront, 'Found existing ' . 'subscription in unit test, could not delete prior to running ' . 'test -- ' . $message);
     // Query
     $newSubscription = $yt->newSubscriptionEntry();
     $newSubscription->category = array($yt->newCategory('query', $this->subscriptionTypeSchema));
     $newSubscription->setQueryString($yt->newQueryString($queryStringToSubscribeTo));
     $postUrl = 'https://gdata.youtube.com/feeds/api/users/default/subscriptions';
     $successPosting = true;
     $message = null;
     $insertedSubscription = null;
     try {
         $insertedSubscription = $yt->insertEntry($newSubscription, $postUrl, '\\ZendGData\\YouTube\\SubscriptionEntry');
     } catch (App\Exception $e) {
         $message = $e->getMessage();
         $successPosting = false;
     }
     $this->assertTrue($successPosting, $message);
     // Delete it
     $successDeletion = true;
     $message = null;
     try {
         $insertedSubscription->delete();
     } catch (App\Exception $e) {
         $message = $e->getMessage();
         $successDeletion = false;
     }
     $this->assertTrue($successDeletion, $message);
 }