title: Chaining function that returns promise doesn't resolve after flushing timeout
body: <p>The chain inside this testcode will not resolve... It resolve level 1 and level2. </p>
  
  <pre><code>    it('Three level promise', inject(function ($q, $timeout, $rootScope) {
          var plusOne = function(value) {
              var deferred = $q.defer();
              $timeout(function() {
                  deferred.resolve(value+1);
              }, 10);
              return deferred.promise;
          }
  
          var promiseCall = function() {
              return plusOne(1).then(function (data){
                  console.error('call1 resolved', data);
                  return plusOne(data).then(function (data2){
                      console.error('call2 resolved', data2);
                      return plusOne(data2).then(function (data3){
                          console.error('call3 resolved', data3);
                              return data3;
                      });
                  });
              });
          }
  
          var result;
  
          promiseCall().then(function (data) {
              result = data;
          });
  
          $timeout.flush(); // Force timeout to be flushed.
  
          expect(result).toBe(3);
      }));
  </code></pre>
  
  <p>I cant see why this shouldnt work... :-(</p>
  
  <p>... And stackoverflow dont like that I have so much code inside this request. </p>