Defined a karma config to test all builded views
diff --git a/views/ngXosLib/README.md b/views/ngXosLib/README.md
index a40a955..958b721 100644
--- a/views/ngXosLib/README.md
+++ b/views/ngXosLib/README.md
@@ -50,7 +50,7 @@
 
 We have created a [yeoman](http://yeoman.io/) generator to help you scaffolding views.
 
->As it is in an early stage of development you should manually link it to your system, to do this enter `xos/views/ngXosLib/generator-xos` and run `npm link`.
+>As it is in an early stage of development you should manually link it to your system, to do this enter `xos/views/ngXosLib/generator-xos` and run `npm install && npm link`.
 
 #### To generate a new view
 
diff --git a/views/ngXosLib/karma.conf.js b/views/ngXosLib/karma.conf.js
index ed2ec3e..9d880a0 100644
--- a/views/ngXosLib/karma.conf.js
+++ b/views/ngXosLib/karma.conf.js
@@ -22,7 +22,6 @@
   'xosHelpers/src/**/*.module.js',
   'xosHelpers/src/**/*.js',
   `xosHelpers/spec/**/${testFiles}.test.js`
-  // 'xosHelpers/spec/ui/smart-pie.test.js'
 ]);
 
 module.exports = function(config) {
diff --git a/views/ngXosLib/karma.conf.views.js b/views/ngXosLib/karma.conf.views.js
new file mode 100644
index 0000000..b1dcc6c
--- /dev/null
+++ b/views/ngXosLib/karma.conf.views.js
@@ -0,0 +1,118 @@
+'use strict';
+
+// THIS KARMA CONF WILL ITERATE THE VIEW FOLDER AND PERFORM ALL THE TESTS!!!
+
+// Karma configuration
+// Generated on Tue Oct 06 2015 09:27:10 GMT+0000 (UTC)
+
+/* eslint indent: [2,2], quotes: [2, "single"]*/
+
+const babelPreset = require('babel-preset-es2015');
+const fs = require('fs');
+
+const viewDir = '../../xos/core/xoslib/static/js/';
+let viewFiles = fs.readdirSync(viewDir);
+
+// hack to avoid testing backbone implementation (they need to be removed)
+viewFiles = viewFiles.filter(f => f.indexOf('xosAdminSite') === -1);
+
+viewFiles = viewFiles.filter(f => f.indexOf('js') >= 0).filter(f => f.match(/^xos[A-Z][a-z]+/)).map(f => `${viewDir}${f}`);
+
+/*eslint-disable*/
+
+var files = [
+  'node_modules/babel-polyfill/dist/polyfill.js',
+
+  // loading jquery (it's used in tests)
+  `./bower_components/jasmine-jquery/lib/jasmine-jquery.js`,
+  `./bower_components/jquery/dist/jquery.js`,
+
+  // loading helpers and vendors
+  `../../xos/core/xoslib/static/js/vendor/ngXosVendor.js`,
+  `../../xos/core/xoslib/static/js/vendor/ngXosHelpers.js`,
+
+  // loading ngMock
+  `./bower_components/angular-mocks/angular-mocks.js`,
+
+  // loading templates
+  `../../xos/core/xoslib/dashboards/xosDiagnostic.html`,
+
+  // loading files
+  `../ngXosViews/*/spec/*.test.js`
+].concat(viewFiles);
+
+module.exports = function(config) {
+/*eslint-enable*/
+  config.set({
+
+    // base path that will be used to resolve all patterns (eg. files, exclude)
+    basePath: '',
+
+
+    // frameworks to use
+    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+    frameworks: ['jasmine'],
+
+
+    // list of files / patterns to load in the browser
+    files: files,
+
+
+    // list of files to exclude
+    exclude: [
+    ],
+
+
+    // preprocess matching files before serving them to the browser
+    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+    preprocessors: {
+      '../ngXosViews/**/spec/*.test.js': ['babel'],
+    },
+
+    babelPreprocessor: {
+      options: {
+        presets: [babelPreset],
+        sourceMap: 'inline'
+      }
+    },
+
+    //ngHtml2JsPreprocessor: {
+    //  stripPrefix: 'src/', //strip the src path from template url (http://stackoverflow.com/questions/22869668/karma-unexpected-request-when-testing-angular-directive-even-with-ng-html2js)
+    //  moduleName: 'templates' // define the template module name
+    //},
+
+    // test results reporter to use
+    // possible values: 'dots', 'progress'
+    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+    reporters: ['mocha'],
+
+
+    // web server port
+    port: 9876,
+
+
+    // enable / disable colors in the output (reporters and logs)
+    colors: true,
+
+
+    // level of logging
+    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+    logLevel: config.LOG_INFO,
+
+
+    // enable / disable watching file and executing tests whenever any file changes
+    autoWatch: true,
+
+
+    // start these browsers
+    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+    browsers: [
+      'PhantomJS'
+    ],
+
+
+    // Continuous Integration mode
+    // if true, Karma captures browsers, runs the tests and exits
+    singleRun: false
+  });
+};
diff --git a/views/ngXosLib/package.json b/views/ngXosLib/package.json
index e0fa151..da9d27b 100644
--- a/views/ngXosLib/package.json
+++ b/views/ngXosLib/package.json
@@ -6,6 +6,7 @@
   "scripts": {
     "test": "karma start karma.conf.js",
     "test:ci": "karma start karma.conf.ci.js",
+    "test:views": "karma start karma.conf.views.js",
     "apigen": "node apigen/blueprintToNgResource.js",
     "swagger": "node xos-swagger-def.js",
     "doc": "gulp docs; cd ./docs",
diff --git a/views/ngXosViews/contentProvider/src/js/main.js b/views/ngXosViews/contentProvider/src/js/main.js
index 6448679..efb46bc 100644
--- a/views/ngXosViews/contentProvider/src/js/main.js
+++ b/views/ngXosViews/contentProvider/src/js/main.js
@@ -3,12 +3,10 @@
 angular.module('xos.contentProvider', [
   'ngResource',
   'ngCookies',
-  'ngLodash',
   'xos.helpers',
-  'ui.router',
-  'xos.xos'
+  'ui.router'
 ])
-.config(($stateProvider, $urlRouterProvider) => {
+.config(($stateProvider) => {
 
   $stateProvider
   .state('list', {
@@ -73,7 +71,7 @@
     }
   };
 })
-.directive('contentProviderList', function(ContentProvider, lodash){
+.directive('contentProviderList', function(ContentProvider, _){
   return {
     restrict: 'E',
     controllerAs: 'vm',
@@ -112,7 +110,7 @@
       this.deleteCp = function(id){
         ContentProvider.delete({id: id}).$promise
         .then(function(){
-          lodash.remove(self.contentProviderList, {id: id});
+          _.remove(self.contentProviderList, {id: id});
         });
       };
     }
@@ -179,7 +177,7 @@
     }
   };
 })
-.directive('contentProviderCdn', function($stateParams, CdnPrefix, ContentProvider, lodash){
+.directive('contentProviderCdn', function($stateParams, CdnPrefix, ContentProvider, _){
   return{
     restrict: 'E',
     controllerAs: 'vm',
@@ -206,7 +204,7 @@
       .then(function(prf){
         self.prf = prf;
         // set the active CdnPrefix for this contentProvider
-        self.cp_prf = lodash.where(prf, {contentProvider: parseInt($stateParams.id)});
+        self.cp_prf = _.where(prf, {contentProvider: parseInt($stateParams.id)});
       }).catch(function(e){
         self.result = {
           status: 0,
@@ -234,7 +232,7 @@
       this.removePrefix = function(item){
         item.$delete()
         .then(function(){
-          lodash.remove(self.cp_prf, item);
+          _.remove(self.cp_prf, item);
         })
         .catch(function(e){
           self.result = {
@@ -246,7 +244,7 @@
     }
   };
 })
-.directive('contentProviderServer', function($stateParams, OriginServer, ContentProvider, lodash){
+.directive('contentProviderServer', function($stateParams, OriginServer, ContentProvider, _){
   return{
     restrict: 'E',
     controllerAs: 'vm',
@@ -300,7 +298,7 @@
       this.removeOrigin = function(item){
         item.$delete()
         .then(function(){
-          lodash.remove(self.cp_os, item);
+          _.remove(self.cp_os, item);
         })
         .catch(function(e){
           self.result = {
@@ -312,7 +310,7 @@
     }
   };
 })
-.directive('contentProviderUsers', function($stateParams, ContentProvider, User, lodash){
+.directive('contentProviderUsers', function($stateParams, ContentProvider, User, _){
   return{
     restrict: 'E',
     controllerAs: 'vm',
@@ -347,7 +345,7 @@
 
       this.populateUser = function(ids, list){
         for(var i = 0; i < ids.length; i++){
-          ids[i] = lodash.find(list, {id: ids[i]});
+          ids[i] = _.find(list, {id: ids[i]});
         }
         return ids;
       };
@@ -357,13 +355,13 @@
       };
 
       this.removeUserFromCp = function(user){
-        lodash.remove(self.cp.users, user);
+        _.remove(self.cp.users, user);
       };
 
       this.saveContentProvider = function(cp){
 
         // flatten the user to id of array
-        cp.users = lodash.pluck(cp.users, 'id');
+        cp.users = _.pluck(cp.users, 'id');
 
         cp.$update()
         .then(function(res){