Koha-clms/t
Marcel de Rooy 0082a4587b Bug 10480: New module and unit test for framework plugins
This patch introduces the Koha::FrameworkPlugin object to Koha.
This object supports the current "old-style" plugins while adding a new
style based on the concept of two anynomous subroutines for building and
launching.

I will summarize the advantages of this new approach, justifying the
additional lines of code in this patch:

[1] Centralizing the code for building and launching plugins.
[2] Extensive unit testing: this was not possible before.
[3] Simplicity: Only define what you need in the plugin.
    A follow-up patch will delete 1500 lines with *empty* routines.
[4] Make it possible to restore the warnings pragma for all plugins.
    New style plugins do no longer depend on redefinition.
[5] Event binding moved from HTML attributes moved to jQuery code.
    This separates behavior and presentation.
[6] Much more documentation, including EXAMPLE plugin in follow-up.
[7] Improved error handling.
[8] Usability: property noclick tells you if plugin's buttonDot is active.
[9] More events supported: Change, keyboard/mouse events. See EXAMPLE.

NOTE ON EXAMPLE PLUGIN:
The example plugin is added in the third patch of this report. Since
it is new style, it can be used only after we start using this object. It
also contains an example for a keypress and mouseover event.

NOTE ON ITEM PLUGINS:
Old style plugins for items contain an additional parameter in the js
functions for Blur, Focus and Change. This distinction has no actual use
and is resolved for new plugins in the object code. When converting
item plugins, this minor correction will be addressed. In the meantime
old style item plugins behave as expected.

TEST PLAN:
Run the new test t/db_dependent/FrameworkPlugin.t
At this point in time, you do not need to do anything more. Follow-up
patches will incorporate the object in real-life Koha and provide
additional test plans.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2015-04-16 14:48:35 -03:00
..
Acquisition bug 8854: fix some invoice search filters 2013-11-19 16:12:31 +00:00
Biblio Bug 12343: Add regression test for TransformKohaToMarc 2014-06-15 11:27:20 -03:00
Budgets Bug 12019: ensure that it is optional to define an owner if a fund is restricted 2014-05-03 19:00:08 +00:00
Circulation Bug 13106 - Encapsulate Circulation::GetAgeRestriction() and modify it to check borrowers age as well. 2014-11-11 09:52:59 -03:00
DataTables Bug 9811: Patron search improvement 2014-07-01 09:57:09 -03:00
Koha/Plugin Bug 7804 - Add Koha Plugin System - QA Followup 2 2013-03-20 14:50:19 -04:00
Members Bug 108661: (follow-up) enshrine letting CardnumberLength specify just a maximum 2014-03-12 04:07:03 +00:00
Number Bug 12844: Force the symbol place in the tests 2014-10-27 12:56:30 -03:00
Search Bug 10807: Add an authority search history for the OPAC 2014-05-05 02:32:27 +00:00
Serials Bug 7688: (follow-up) rewrite 'for' loop in unit tests 2013-10-30 00:38:52 +00:00
db_dependent Bug 10480: New module and unit test for framework plugins 2015-04-16 14:48:35 -03:00
lib Bug 13274: Mock new_dbh in t::lib::Mocks 2014-11-19 09:50:32 -03:00
00-checkdatabase-version.t Bug 9191 follow-up: remove example updatedatabase stanzas 2012-12-11 08:29:11 -05:00
00-deprecated.t
…
00-load.t Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
00-merge-conflict-markers.t
…
00-testcritic.t Bug 8798: (follow-up) remove DBIC_DONT_VALIDATE_RELS 2013-10-14 22:51:44 +00:00
00-valid-xml.t
…
AuthUtils.t Bug 9611: (follow-up) move new password hashing routines to separate module 2013-10-09 03:29:22 +00:00
Auth_with_shibboleth.t Bug 8446: (qa followup) Tests should be conditional on Test::DBIx::Class 2014-10-16 12:28:04 -03:00
AuthoritiesMarc_MARC21.t
…
AuthoritiesMarc_UNIMARC.t
…
Barcodes_EAN13.t Bug 6448 [2/3] Barcodes::EAN13 autoBarcode 2012-08-02 18:41:44 +02:00
Barcodes_ValueBuilder.t Bug 8524 follow-up: fix broken test 2012-08-31 17:42:44 +02:00
Barcodes_annual.t
…
Barcodes_hbyymmincr.t
…
Barcodes_incremental.t
…
Biblio.t Bug 13230: t/Biblio.t should run without a DB 2014-11-11 09:43:31 -03:00
Bookseller.t
…
Boolean.t Bug 13814: (QA followup) test for generated warnings 2015-03-15 09:03:33 -03:00
Borrower.t Bug 13882: Tidy t/Borrower.t to fix whitespace errors 2015-04-08 12:19:15 -03:00
Branch.t
…
Breeding.t Bug 13279: t/Breeding.t shouldn't depend on the DB 2014-11-20 09:39:53 -03:00
Budgets.t
…
Cache.t Bug 12800: running unit tests that use Koha::Cache breaks cache usage from Apache 2014-08-24 12:48:34 -03:00
Calendar.t Bug 9209: Skip tests for older DBD::Mock 2012-12-28 20:15:36 -05:00
Charset.t Bug 11944: replace use of utf8 with Encode 2015-01-13 13:06:45 -03:00
Circulation_barcodedecode.t Bug 10900 - Incorrect calling conventions accessing C4::Context 2015-02-09 17:00:13 -03:00
ClassSortRoutine.t
…
ClassSortRoutine_Dewey.t Bug 8837 [QA Followup] - Add unit tests 2014-10-28 09:39:44 -03:00
ClassSortRoutine_Generic.t
…
ClassSortRoutine_LCC.t bug 6281: introduce LC::CallNumber::LC for sorting LC call numbers 2013-06-10 07:56:53 -07:00
ClassSource.t
…
Context.t Bug 11848: Fix C4::Context::interface, add POD and UT 2014-05-05 04:32:31 +00:00
Contract.t
…
Creators.t Bug 8375: (follow-up) final adjustment to t/Creators.t 2014-05-07 01:00:34 +00:00
DateUtils.t Bug 13933: Fix t/DateUtils.t without DB 2015-04-01 13:10:16 -03:00
Dates.t
…
Debug.t
…
External_Overdrive.t Followup for bug 10320: minor bugfixes and style improvements 2013-09-08 07:04:02 +00:00
External_Syndetics.t
…
Form_MessagingPreferences.t
…
Heading.t
…
Images.t Bug 5327: Testing c4 Images 2012-09-07 14:42:18 +02:00
ImportBatch.t Bug 13281: t/ImportBatch.t shouldn't depend on the DB 2014-11-20 09:53:36 -03:00
Input.t
…
Installer_PerlDependencies.t
…
Installer_PerlModules.t bug 11544: increasing test coverage for Installer_PerlModules.pm 2014-01-14 21:48:43 +00:00
Installer_pm.t
…
ItemCirculationAlertPreference.t
…
ItemType.t Bug 13934: C4::ItemType->get should return undef if no parameter given 2015-04-10 10:18:07 -03:00
Koha.t Bug 13167: (QA followup) regression tests 2015-01-04 11:14:58 -03:00
Koha_Email.t Bug 13172 t/Koha_Email.t was database dependent 2014-10-31 12:10:32 -03:00
Koha_MetadataRecord.t Bug 9755 QA follow-up: move MARC-specific functionality to utility class 2013-07-23 23:10:21 +00:00
Koha_Template_Plugin_Cache.t Bug 11452: Add unit tests for Koha::Template::Plugin::Cache 2014-01-10 15:42:23 +00:00
Koha_Template_Plugin_Koha.t Bug 13496: add a method for the templates to print Koha version as desired 2015-01-04 11:24:07 -03:00
Koha_Util_FrameworkPlugin.t Bug 13223: [QA Follow-up] Adding some unit tests for wrapper 2014-11-19 13:28:28 -03:00
Koha_Util_MARC.t Bug 5202: merge authorities from the authority file and reservoir 2013-10-10 21:32:27 +00:00
Labels.t Bug 11402: (follow-up) add one more unit test 2013-12-30 16:23:10 +00:00
Labels_split_ccn.t
…
Labels_split_ddcn.t
…
Labels_split_lccn.t bug 9370: add invalid call number to LC splitting test cases 2013-06-12 07:44:05 -07:00
Languages.t Bug 11944: use CGI( -utf8 ) everywhere 2015-01-13 13:07:21 -03:00
Letters.t Bug 13601: t/Letters.t needs to mock the dateformat pref 2015-03-30 13:40:05 -03:00
Log.t Bug 11537: (follow-up) mock C4::Context::preference 2014-01-14 19:27:07 +00:00
Matcher.t Bug 5327 Tests for C4::Matcher 2012-09-07 14:31:52 +02:00
Members_AttributeTypes.t Bug 7919: Fix unit test (Members_AttributeTypes.t) 2012-12-07 18:26:37 -05:00
Members_Attributes.t
…
Members_Messaging.t
…
Message.t Bug 13282: t/Message.t shouldn't depend on the DB 2014-11-20 09:38:02 -03:00
NorwegianPatronDB.t Bug 11401: (followup) make tests run on absent deps 2014-11-14 15:32:25 -03:00
Output.t Bug 11944: use CGI( -utf8 ) everywhere 2015-01-13 13:07:21 -03:00
Output_JSONStream.t Bug 11480: Fix invalid assumptions in JSONStream test 2014-01-10 15:42:17 +00:00
Overdues.t Bug 13283: t/Overdues.t shouldn't depend on the DB 2014-11-20 09:37:39 -03:00
Patroncards.t
…
Patroncards_Batch.t
…
Patroncards_Layout.t
…
Patroncards_Lib.t
…
Patroncards_Patroncard.t
…
Patroncards_Profile.t
…
Patroncards_Template.t
…
Prices.t Bug 12976: Fix some comment in tests 2015-02-19 09:46:44 -03:00
Print.t bug 11542: Increase test coverage for Print.pm 2014-01-14 20:41:31 +00:00
QueryParser.t Bug 12647: PQF QueryParser driver and unit tests fixes 2014-08-11 10:09:38 -03:00
RecordProcessor.t Bug 7417: Include see from references in bibliographic searches 2012-09-13 14:19:28 +02:00
Review.t
…
Ris.t
…
RotatingCollections.t Bug 13284: t/RotatingCollections.t shouldn't depend on the DB 2014-11-20 09:37:20 -03:00
SIP_Sip.t Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
SMS.t Bug 12642: t/SMS.t should not be db dependent 2014-07-29 11:27:55 -03:00
Scheduler.t
…
Scrubber.t
…
Search.t Bug 13278: (QA followup) use t::lib::Mocks 2014-11-19 18:11:58 -03:00
Search_PazPar2.t
…
SimpleMARC.t Bug 11413: Change the field number logic 2014-11-14 12:05:40 -03:00
SocialData.t Bug 5327: Unit tests for C4 socialdata 2012-09-07 14:32:00 +02:00
Stats.t
…
SuggestionEngine.t Bug 8726 follow-up: fix QA issues 2012-09-28 17:14:15 +02:00
SuggestionEngine_AuthorityFile.t Bug 13277: (QA followup) use t::lib::Mocks 2014-11-19 18:12:03 -03:00
TmplToken.t
…
XSLT.t Bug 13276: use t::lib::Mocks::mock_dbh 2014-11-19 11:30:45 -03:00
dummy.t
…
perlcriticrc
…
smolder_smoke_signal
…