Files
codeql/javascript/ql/test/query-tests/AngularJS/MissingExplicitInjection/missing-explicit-injection.js
2018-08-02 17:53:23 +01:00

43 lines
1.2 KiB
JavaScript

(function(){
function injected1(name){} // NOT OK
angular.module('app1').controller('controller1', injected1);
function injected2(name){} // OK
injected2.$inject = ['name'];
angular.module('app2').controller('controller2', injected2);
function injected3(name){} // OK
angular.module('app3').controller('controller3', ['name', injected3]);
angular.module('app4').controller('controller4', function(){}); // OK
angular.module('app5').controller('controller5', function(name){}); // NOT OK
function injected6(){} // OK
angular.module('app6').controller('controller6', injected6);
function notInjected7(name){} // OK
var obj7 = {
controller: notInjected7
};
function injected8(name){} // OK (false negative: we do not track through properties)
var obj8 = {
controller: injected8
};
angular.module('app8').controller('controller8', obj8.controller);
var $injector = angular.injector();
function injected9(name){} // NOT OK
$injector.invoke(injected9)
function injected10(name){} // OK
injected10.$inject = ['name'];
$injector.invoke(injected10)
function injected11(name){} // OK
$injector.invoke(['name', injected11])
})();