Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js3
-rw-r--r--plugins/CoreHome/angularjs/common/directives/autocomplete-matched_test.js43
-rw-r--r--plugins/CoreHome/angularjs/common/filters/startfrom_test.js16
-rw-r--r--plugins/CoreHome/angularjs/common/services/piwik_test.js37
-rw-r--r--tests/angularjs/README.md2
-rwxr-xr-xtests/angularjs/karma.conf.js7
6 files changed, 98 insertions, 10 deletions
diff --git a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
index a052482ce6..a78154b49a 100644
--- a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
+++ b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
@@ -30,7 +30,8 @@ angular.module('piwikApp.directive').directive('piwikAutocompleteMatched', funct
}
var content = element.html();
- var startTerm = content.toLowerCase().indexOf(searchTerm);
+ var startTerm = content.toLowerCase().indexOf(searchTerm.toLowerCase());
+
if (-1 !== startTerm) {
var word = content.substr(startTerm, searchTerm.length);
content = content.replace(word, '<span class="autocompleteMatched">' + word + '</span>');
diff --git a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched_test.js b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched_test.js
new file mode 100644
index 0000000000..2518687b97
--- /dev/null
+++ b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched_test.js
@@ -0,0 +1,43 @@
+/*!
+ * Piwik - Web Analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+describe('piwikAutocompleteMatchedDirective', function() {
+ var $compile;
+ var $rootScope;
+
+ beforeEach(module('piwikApp.directive'));
+ beforeEach(inject(function(_$compile_, _$rootScope_){
+ $compile = _$compile_;
+ $rootScope = _$rootScope_;
+ }));
+
+ function assertRenderedContentIs(query, expectedResult) {
+ var template = '<div piwik-autocomplete-matched="\'' + query + '\'">My Content</div>';
+ var element = $compile(template)($rootScope);
+ $rootScope.$digest();
+ expect(element.html()).to.eql(expectedResult);
+ }
+
+ describe('#piwikAutocompleteMatched()', function() {
+
+ it('should not change anything if query does not match the text', function() {
+ assertRenderedContentIs('Whatever', 'My Content');
+ });
+
+ it('should wrap the matching part and find case insensitive', function() {
+ assertRenderedContentIs('y cont', 'M<span class="autocompleteMatched">y Cont</span>ent');
+ });
+
+ it('should be able to wrap the whole content', function() {
+ assertRenderedContentIs('my content', '<span class="autocompleteMatched">My Content</span>');
+ });
+
+ it('should find matching content case sensitive', function() {
+ assertRenderedContentIs('My Co', '<span class="autocompleteMatched">My Co</span>ntent');
+ });
+ });
+}); \ No newline at end of file
diff --git a/plugins/CoreHome/angularjs/common/filters/startfrom_test.js b/plugins/CoreHome/angularjs/common/filters/startfrom_test.js
index cd12279c39..d18c99e781 100644
--- a/plugins/CoreHome/angularjs/common/filters/startfrom_test.js
+++ b/plugins/CoreHome/angularjs/common/filters/startfrom_test.js
@@ -5,18 +5,16 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-describe('startFromFilter filter', function() {
+describe('startFromFilter', function() {
var startFrom;
- beforeEach(function() {
- module('piwikApp.filter');
- inject(function($injector) {
- var $filter = $injector.get('$filter');
- startFrom = $filter('startFrom');
- });
- });
+ beforeEach(module('piwikApp.filter'));
+ beforeEach(inject(function($injector) {
+ var $filter = $injector.get('$filter');
+ startFrom = $filter('startFrom');
+ }));
- describe('startFrom', function() {
+ describe('#startFrom()', function() {
it('should return all entries if index is zero', function() {
diff --git a/plugins/CoreHome/angularjs/common/services/piwik_test.js b/plugins/CoreHome/angularjs/common/services/piwik_test.js
new file mode 100644
index 0000000000..7aa4ef4eb1
--- /dev/null
+++ b/plugins/CoreHome/angularjs/common/services/piwik_test.js
@@ -0,0 +1,37 @@
+/*!
+ * Piwik - Web Analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+describe('piwikService', function() {
+ var piwikService;
+
+ beforeEach(module('piwikApp.service'));
+ beforeEach(inject(function($injector) {
+ piwikService = $injector.get('piwik');
+ }));
+
+ describe('#piwikService', function() {
+
+ it('should be the same as piwik global var', function() {
+ piwik.should.equal(piwikService);
+ });
+
+ it('should mixin broadcast', function() {
+ expect(piwikService.broadcast).to.be.an('object');
+ });
+
+ it('should mixin piwikHelper', function() {
+ expect(piwikService.helper).to.be.an('object');
+ });
+ });
+
+ describe('#piwik_url', function() {
+
+ it('should contain the piwik url', function() {
+ expect(piwikService.piwik_url).to.eql('http://localhost/');
+ });
+ });
+}); \ No newline at end of file
diff --git a/tests/angularjs/README.md b/tests/angularjs/README.md
index fd8465c4b7..440cc39f5e 100644
--- a/tests/angularjs/README.md
+++ b/tests/angularjs/README.md
@@ -43,4 +43,6 @@ Just in case you want to write a test for your jQuery code you can do this the s
## Examples
* [Testing a filter](plugins/CoreHome/angularjs/common/filters/startfrom_test.js)
+* [Testing a directive](plugins/CoreHome/angularjs/common/directives/autocomplete-matched_test.js)
+* [Testing a service/provider/factory/model](plugins/CoreHome/angularjs/common/services/piwik_test.js)
* See more examples in [AngularJS guide](http://docs.angularjs.org/guide/unit-testing)
diff --git a/tests/angularjs/karma.conf.js b/tests/angularjs/karma.conf.js
index 228379cc62..a5b3f7943a 100755
--- a/tests/angularjs/karma.conf.js
+++ b/tests/angularjs/karma.conf.js
@@ -18,8 +18,15 @@ module.exports = function(config) {
'tests/angularjs/node_modules/chai/chai.js',
'tests/angularjs/bootstrap.js',
'libs/angularjs/angular.min.js',
+ "libs/angularjs/angular-sanitize.min.js",
+ "libs/angularjs/angular-animate.min.js",
'libs/angularjs/angular-mocks.js',
'libs/jquery/jquery.js',
+ "libs/jquery/jquery-ui.js",
+ "plugins/CoreHome/javascripts/require.js",
+ "plugins/Zeitgeist/javascripts/piwikHelper.js",
+ "plugins/Zeitgeist/javascripts/ajaxHelper.js",
+ "plugins/CoreHome/javascripts/broadcast.js",
'plugins/CoreHome/angularjs/common/services/service.js',
'plugins/CoreHome/angularjs/common/filters/filter.js',
'plugins/CoreHome/angularjs/common/directives/directive.js',