Skip to content

Commit

Permalink
LinkDB: move to a proper file, add test coverage
Browse files Browse the repository at this point in the history
Relates to #71

LinkDB
 - move to application/LinkDB.php
 - code cleanup
   - indentation
   - whitespaces
   - formatting
 - comment cleanup
   - add missing documentation
   - unify formatting

Test coverage for LinkDB
 - constructor
 - public / private access
 - link-related methods

Shaarli utilities (LinkDB dependencies)
 - move startsWith() and endsWith() functions to application/Utils.php
 - add test coverage

Dev utilities
 - Composer: add PHPUnit to dev dependencies
 - Makefile:
    - update lint targets
    - add test targets
    - generate coverage reports

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
  • Loading branch information
virtualtam committed Jun 10, 2015
1 parent cbecab7 commit 55a6cdc
Show file tree
Hide file tree
Showing 10 changed files with 1,227 additions and 257 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,7 @@ pagecache
composer.lock
/vendor/

# Ignore test output
# Ignore test data & output
coverage
tests/datastore.php
phpmd.html
33 changes: 26 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,23 @@
# - install/update test dependencies:
# $ composer install # 1st setup
# $ composer update
# - install Xdebug for PHPUnit code coverage reports:
# - see http://xdebug.org/docs/install
# - enable in php.ini

BIN = vendor/bin
PHP_SOURCE = index.php
MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode
PHP_SOURCE = index.php application tests
PHP_COMMA_SOURCE = index.php,application,tests

all: static_analysis_summary
all: static_analysis_summary test

##
# Concise status of the project
# These targets are non-blocking: || exit 0
##

static_analysis_summary: code_sniffer_source copy_paste mess_detector_summary
@echo

##
# PHP_CodeSniffer
Expand Down Expand Up @@ -62,6 +66,7 @@ copy_paste:
# Detects PHP syntax errors, sorted by category
# Rules documentation: http://phpmd.org/rules/index.html
##
MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode

mess_title:
@echo "-----------------"
Expand All @@ -70,11 +75,11 @@ mess_title:

### - all warnings
mess_detector: mess_title
@$(BIN)/phpmd $(PHP_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__'
@$(BIN)/phpmd $(PHP_COMMA_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__'

### - all warnings + HTML output contains links to PHPMD's documentation
mess_detector_html:
@$(BIN)/phpmd $(PHP_SOURCE) html $(MESS_DETECTOR_RULES) \
@$(BIN)/phpmd $(PHP_COMMA_SOURCE) html $(MESS_DETECTOR_RULES) \
--reportfile phpmd.html || exit 0

### - warnings grouped by message, sorted by descending frequency order
Expand All @@ -85,10 +90,24 @@ mess_detector_grouped: mess_title
### - summary: number of warnings by rule set
mess_detector_summary: mess_title
@for rule in $$(echo $(MESS_DETECTOR_RULES) | tr ',' ' '); do \
warnings=$$($(BIN)/phpmd $(PHP_SOURCE) text $$rule | wc -l); \
warnings=$$($(BIN)/phpmd $(PHP_COMMA_SOURCE) text $$rule | wc -l); \
printf "$$warnings\t$$rule\n"; \
done;

##
# PHPUnit
# Runs unitary and functional tests
# Generates an HTML coverage report if Xdebug is enabled
#
# See phpunit.xml for configuration
# https://phpunit.de/manual/current/en/appendixes.configuration.html
##
test: clean
@echo "-------"
@echo "PHPUNIT"
@echo "-------"
@$(BIN)/phpunit tests

##
# Targets for repository and documentation maintenance
##
Expand All @@ -107,4 +126,4 @@ doc: clean
htmldoc:
for file in `find doc/ -maxdepth 1 -name "*.md"`; do \
pandoc -f markdown_github -t html5 -s -c "github-markdown.css" -o doc/`basename $$file .md`.html "$$file"; \
done;
done;
Loading

0 comments on commit 55a6cdc

Please sign in to comment.