<!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>
angular.module('testingService', []);
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', function() {
		
		var service, mockedService;
		
		beforeEach(module('testingService'));
		
		beforeEach(function() {
			mockedService = {
	            sayFoo : function() {
	                return 'foo';
	            }
	        };
			
			module(function($provide) {
	            $provide.value('someOtherService', mockedService);
	        });
	        
	        inject(function(testService) {
	            service = testService;
	        });
		});
	
		it ('should have some other service inejcted', function() {
			expect(service.callOtherService()).toBe('foo');
		});
	});