From 21fbe04960db1462177cd289dc6f17986f09ad29 Mon Sep 17 00:00:00 2001
From: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Date: Wed, 30 Jul 2014 11:31:39 -0300
Subject: [PATCH] [PASSED QA] Bug 12675: Add unit test to GetFrameworksLoop

to test:
1. Apply the patch
2. Run the test, prove t/db_dependent/Koha.t
3. Check that it pass

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
---
 t/db_dependent/Koha.t | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/t/db_dependent/Koha.t b/t/db_dependent/Koha.t
index 0e90403..e40b4c2 100644
--- a/t/db_dependent/Koha.t
+++ b/t/db_dependent/Koha.t
@@ -8,7 +8,7 @@ use warnings;
 use C4::Context;
 use Koha::DateUtils qw(dt_from_string);
 
-use Test::More tests => 7;
+use Test::More tests => 8;
 use DateTime::Format::MySQL;
 
 BEGIN {
@@ -261,3 +261,48 @@ subtest 'getFacets() tests' => sub {
         'location facet present with singleBranchMode on (bug 10078)'
     );
 };
+
+subtest 'GetFrameworksLoop() tests' => sub {
+    plan tests => 6;
+
+    $dbh->do("DELETE FROM biblio_framework");
+
+    my $frameworksloop = GetFrameworksLoop();
+    is ( scalar(@$frameworksloop), 0, 'No frameworks' );
+
+    $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'A', 'Third framework'  )");
+    $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'B', 'Second framework' )");
+    $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'C', 'First framework'  )");
+
+    $frameworksloop = GetFrameworksLoop();
+    is ( scalar(@$frameworksloop), 3, 'All frameworks' );
+    is ( scalar ( grep { defined $_->{'selected'} } @$frameworksloop ), 0, 'None selected' );
+
+    $frameworksloop = GetFrameworksLoop( 'B' );
+    is ( scalar ( grep { defined $_->{'selected'} } @$frameworksloop ), 1, 'One selected' );
+    my @descriptions = map { $_->{'description'} } @$frameworksloop;
+    is ( $descriptions[0], 'First framework', 'Ordered result' );
+    cmp_deeply(
+        $frameworksloop,
+        [
+            {
+                'value' => 'C',
+                'description' => 'First framework',
+                'selected' => undef,
+            },
+            {
+                'value' => 'B',
+                'description' => 'Second framework',
+                'selected' => 1,                # selected
+            },
+            {
+                'value' => 'A',
+                'description' => 'Third framework',
+                'selected' => undef,
+            }
+        ],
+        'Full check, sorted by description with selected val (Bug 12675)'
+    );
+};
+
+$dbh->rollback();
-- 
1.9.1