<!DOCTYPE html>
<html>

<head>
  <link data-require="jasmine@1.3.1" data-semver="1.3.1" rel="stylesheet" href="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css" />
  <script data-require="jasmine@1.3.1" data-semver="1.3.1" src="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
  <script data-require="jasmine@1.3.1" data-semver="1.3.1" src="//cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>
  <script data-require="angular.js@1.2.16" data-semver="1.2.16" src="https://code.angularjs.org/1.2.16/angular.js"></script>
  <script data-require="json2@*" data-semver="0.0.2012100-8" src="//cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.js"></script>
  <script data-require="angular-mocks@1.2.16" data-semver="1.2.16" src="https://code.angularjs.org/1.2.16/angular-mocks.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
  <script src="test.js"></script>
</head>

<body ng-app="app">
  <div id="HTMLReporter" class="jasmine_reporter"></div>
  <script>
    (function() {
      var jasmineEnv = jasmine.getEnv();
      jasmineEnv.updateInterval = 250;

      var htmlReporter = new jasmine.HtmlReporter();
      jasmineEnv.addReporter(htmlReporter);

      jasmineEnv.specFilter = function(spec) {
        return htmlReporter.specFilter(spec);
      };

      var currentWindowOnload = window.onload;
      window.onload = function() {
        if (currentWindowOnload) {
          currentWindowOnload();
        }

        execJasmine();
      };

      function execJasmine() {
        jasmineEnv.execute();
      }
    })();
  </script>
</body>

</html>
	var app = angular.module('testingService', []);
	
	app.service('someOtherService', ['$http', function($http) {
		this.sayFoo = function() {
			return 'foo';
		};
	}]);
	
	app.factory('testService', ['someOtherService', function(someOtherService) {
		return {
			callOtherService : function() {
				return someOtherService.sayFoo();
			}
		};
	}]);
/* Styles go here */

describe('Testing services with $http dependency', function() {

    var service, httpBackend, data;

    beforeEach(module('testingService'));

    beforeEach(inject(function(testService, _$httpBackend_) {
        service = testService;
        httpBackend = _$httpBackend_;
    }));

    it ('should be loaded', function() {
        expect(service).toBeDefined();
    });

    it ('should return get data when calling getData', function() {
      httpBackend.expectGET('something.local/data/1').respond('some data');
  
      service.getData(1).then(function(result) {
          data = result;
      });

      httpBackend.flush();

      expect(data).toBe('some data');
    });
    
    afterEach(function() {
      // make sure all requests where handled as expected.
      httpBackend.verifyNoOutstandingRequest();
      httpBackend.verifyNoOutstandingExpectation();
    });
});