From 59bf0f7042272ce445e91d62541e9797d1d06d2d Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
Date: Tue, 18 Aug 2015 16:34:25 -0300
Subject: [PATCH] Bug 14651: (regression test) fallback to bib-level if itype
 is undef

Koha::Item->effective_itemtype should fallback to biblio-level itemtype
even if item-level item types are set, in the case the item has no itemtype
set (bad migration, bad old code).

To test:
- Run
  $ prove t/db_dependent/Items.t
=> FAIL: Koha::Item->effective_itemtype doesn't work properly
---
 t/db_dependent/Items.t | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/t/db_dependent/Items.t b/t/db_dependent/Items.t
index b1796bc..0b764b9 100755
--- a/t/db_dependent/Items.t
+++ b/t/db_dependent/Items.t
@@ -195,7 +195,7 @@ subtest 'GetItemsInfo tests' => sub {
 
 subtest q{Test Koha::Database->schema()->resultset('Item')->itemtype()} => sub {
 
-    plan tests => 2;
+    plan tests => 3;
 
     # Start transaction
     $dbh->{AutoCommit} = 0;
@@ -225,6 +225,14 @@ subtest q{Test Koha::Database->schema()->resultset('Item')->itemtype()} => sub {
     C4::Context->set_preference( 'item-level_itypes', 1 );
     ok( $item->effective_itemtype() eq 'ITEM_LEVEL', '$item->itemtype() returns items.itype when item-level_itypes is enabled' );
 
+    # If itemtype is not defined and item-level_level item types are set
+    # fallback to biblio-level itemtype (Bug 14651)
+    $item->itype( undef );
+    $item->update();
+    ok( defined $item->effective_itemtype() &&
+        $item->effective_itemtype() eq 'BIB_LEVEL',
+        '$item->effective_itemtype() falls back to biblioitems.itemtype when item-level_itypes is enabled but undef' );
+
     $dbh->rollback;
 };
 
-- 
2.5.0