Commit Graph

21 Commits

Author SHA1 Message Date
Lucas Bickel d6a5cbd02e Remove assert() from rest module bootstrap
Problem: assert() is Language construct in php 7 and not a function anymore. It also seems to behave silghtly differently with regards to what kind of side effects assertions are allowed to have. This leads to all of the rest endpoints being broken in php 7 since the assertion silently fails and the routes never really get added to the front controllers router.

Solution: Don't wrap the addRouter call in assert(). The way assert was being uses was rather unusual for php code this age. It was also mostly checking zf1 rather than guarding against errors in LibreTime itself.

The php manual clearly states "As a rule of thumb your code should always be able to work correctly if assertion checking is not activated." giving even more reason to ot wrap critical paths in assertions.

There are some other instances of `assert()` being used in non test code, those don't seem to have any negative effects on php7.
2017-06-07 17:33:23 +02:00
Lucas Bickel 625f92fe44 Vendorize ZF1, fix PHPUnit and configure travis
This a a rather large commit due to the nature of the stuff it is touching. To get PHPUnit up and running again I had to update some deps and I did so by vendorizing them. The vendorizing of zf1 makes sense since distros are already considering to drop it from their repos.

* [x] install vendorized zf1 with composer
* [x] load composer autoloader before zf1
* [x] Implement headAction for all Zend_Rest_Controller based controllers
* [x] switch to yml dataset to get around string only limitations of xml sets (also removed warning in readme)
* [x] use year 2044 as hardcoded date for tests since it is in the future and has the same days like previously used 2016
* [x] make tests easier to run when accessing phpunit directly
* [x] clean up test helper to always use airtime.conf
* [x] switch test dbname to libretime_test
* [x] test db username password switched to libretime/libretime
* [x] install phpunit with composer in a clear version (make tests easier to reproduce on other platforms)
* [x] remove local libs from airtime repo (most of airtime_mvc/library was not needed of in vendor already)
* [x] configure composer autoloading and use it (also removed requires that are not needed anymore)
* [x] add LibreTime prefix for FileNotFoundException (phing had a similar class and these are all pre-namespace style)
* [x] add .travis.yml file
* [x] make etc and logdir configurable with LIBRETIME_CONF_DIR and LIBRETIME_LOG_DIR env (so travis can change it)
* [x] slight cleanup in config for travis not to fail
* [x] add cloud_storage.conf for during test runs
* [x] rewrite mvc testing docs and move them to docs/ folder
* [x] don't use `static::class` in a class that does not have a parent class, use `__CLASS__` instead.
* [x] don't use `<ClassName>::class`, since we already know what class we want `"<ClassName>"` ist just fine.
* [x] fix "can't use method in write context" errors on 5.4 (also helps the optimizer)
* [x] add build status badge on main README.md

Fixes https://github.com/LibreTime/libretime/issues/4

The PHP parts of https://github.com/LibreTime/libretime/pull/10 get obsoleted by this change and it will need rebasing.

This also contains https://github.com/LibreTime/libretime/pull/8, the late static binding compat code was broken for no reason and until CentOS drops php 5.4 there is no reason I'm aware of not to support it. I inlined #8 since the test would be failing on php 5.4 without the change.

If you want to run tests you need to run `composer install` in the root directory and then `cd airtime_mvc/tests && ../../vendor/bin/phpunit`. For the tests to run the user `libretime` needs to be allowed to create the `libretime_test` database. See `docs/TESTING.md` for more info on getting set up.
2017-02-27 17:59:01 +01:00
Duncan Sommerville eae8c7b638 Temporary fix to make enclosure urls iTunes compatible 2015-11-17 21:06:51 -05:00
Duncan Sommerville 4828e82d2a Change download key parameter regex 2015-11-17 19:51:41 -05:00
Duncan Sommerville 4b11979eff Remove station podcast from podcast datatable; editor now opens from button in podcasts view 2015-10-29 12:17:52 -04:00
Duncan Sommerville e97aa199bd SAAS-1083 - work on publish dialog 2015-10-28 18:54:30 -04:00
Duncan Sommerville 0b1df6baf3 * SAAS-1084 - initial work on publishing API backend
* More work on automatic ingest
* Add automatic_ingest_timestamp column to ImportedPodcast
2015-10-20 19:03:34 -04:00
Duncan Sommerville 6de6e2767c SAAS-1062 - Podcast skeleton work; slight rework to backend functionality 2015-09-18 15:39:12 -04:00
drigato 67db2c1d25 SAAS-1063: REST API for podcasts
Hierarchy routing is working
Basic implentation of podcast INDEX and POST actions done
2015-09-16 14:22:13 -04:00
Duncan Sommerville 826ae17552 SAAS-580 - Fixed routing issue causing show art to not upload; changed ShowController to be more RESTful 2015-02-04 15:09:27 -05:00
drigato 87d5d3cb02 Merge branch 'cc-5709-airtime-analyzer-cloud-storage' into cc-5709-airtime-analyzer-cloud-storage-saas
Conflicts:
	airtime_mvc/application/modules/rest/Bootstrap.php
	airtime_mvc/application/modules/rest/controllers/MediaController.php
2014-11-03 13:11:22 -05:00
drigato 5f98151009 Removed unused route from rest Media Controller 2014-11-03 12:57:41 -05:00
drigato 0a45de7fba Merge branch 'saas' into cc-5709-airtime-analyzer-cloud-storage-saas
Conflicts:
	.gitignore
	airtime_mvc/application/configs/airtime-conf.php
	airtime_mvc/application/configs/classmap-airtime-conf.php
	airtime_mvc/application/models/RabbitMq.php
	airtime_mvc/application/models/Schedule.php
	airtime_mvc/application/models/StoredFile.php
	airtime_mvc/application/models/airtime/map/CcShowInstancesTableMap.php
	airtime_mvc/application/models/airtime/map/CcShowTableMap.php
	airtime_mvc/application/models/airtime/om/BaseCcShow.php
	airtime_mvc/application/models/airtime/om/BaseCcShowInstances.php
	airtime_mvc/application/models/airtime/om/BaseCcShowInstancesPeer.php
	airtime_mvc/application/models/airtime/om/BaseCcShowInstancesQuery.php
	airtime_mvc/application/models/airtime/om/BaseCcShowPeer.php
	airtime_mvc/application/models/airtime/om/BaseCcShowQuery.php
	airtime_mvc/application/modules/rest/Bootstrap.php
	airtime_mvc/application/modules/rest/controllers/MediaController.php
	airtime_mvc/build/sql/schema.sql
	airtime_mvc/public/index.php
2014-11-03 12:29:58 -05:00
drigato 2423ea6787 Merge branch 'cc-5709-airtime-analyzer' into cc-5709-airtime-analyzer-cloud-storage 2014-10-08 11:46:30 -04:00
Duncan Sommerville 28824219f8 Added delete images endpoint to ShowController 2014-09-18 16:30:03 -04:00
Duncan Sommerville e31eb17cfa Added ShowController to handle show image uploads 2014-09-16 18:10:29 -04:00
drigato 0ccc7e7dc9 SAAS-470: Zend Rest module doesn't work on Ubuntu 14.04
The Bootstrap.php in the modules directory didn't like
short php tags.
2014-08-28 16:52:47 -04:00
drigato aaee522ec6 CC-5888: Handle file deletion if the file is stored in the cloud 2014-07-15 17:20:04 -04:00
drigato a5eb5e9901 CC-5806: Airtime Analyzer: Please implement "remove all files" 2014-04-29 16:06:25 -04:00
drigato 2b696dbee5 CC-5741: Create a download action for the File API 2014-03-18 13:04:06 -04:00
drigato 64c1dd2c1e CC-5701: Airtime File API
Beginnings of fil rest api
index, get, post actions working without authentication
2014-02-27 17:11:17 -05:00