From 1b2c405c1d5f013af4a7bb7660708d0a5ac54d20 Mon Sep 17 00:00:00 2001
From: llaffont <laurent.laffont@gmail.com>
Date: Thu, 13 Feb 2014 15:36:25 +0100
Subject: [PATCH] Fix redirection url for Music Me: ticket sent was wrong (no
 user id in key) rel #12116 #12127

---
 library/Class/WebService/Abstract.php         |  2 +-
 .../controllers/CasServerControllerTest.php   | 25 ++++++++-----------
 2 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/library/Class/WebService/Abstract.php b/library/Class/WebService/Abstract.php
index 39733fe99fb..7b262615548 100644
--- a/library/Class/WebService/Abstract.php
+++ b/library/Class/WebService/Abstract.php
@@ -52,7 +52,7 @@ abstract class Class_WebService_Abstract {
 	}
 
 	function getTicket() {
-		return md5(Zend_Session::getId());
+		return (new Class_CasTicket())->getTicketForCurrentUser();
 	}
 
 }
diff --git a/tests/application/modules/opac/controllers/CasServerControllerTest.php b/tests/application/modules/opac/controllers/CasServerControllerTest.php
index a2d141efe3c..e0b6fb69c6a 100644
--- a/tests/application/modules/opac/controllers/CasServerControllerTest.php
+++ b/tests/application/modules/opac/controllers/CasServerControllerTest.php
@@ -66,14 +66,10 @@ class CasServerControllerMusicMeValidateActionTest extends AbstractControllerTes
 
 	public function setUp() {
 		parent::setUp();
-		$user = new StdClass();
-		$user->ID_USER=300;
-		$user->PRENOM='Tom';
-		$user->NOM = 'Ate';
-		Class_Users::newInstanceWithId(300,
-																	 ['nom' => 'Ate',
-																		'prenom' => 'Tom']);
-		Zend_Registry::get('cache')->save('300', md5(Zend_Session::getId().'300'));
+		$tom = Class_Users::newInstanceWithId(300,
+																					['nom' => 'Ate',
+																					 'prenom' => 'Tom']);
+		ZendAfi_Auth::getInstance()->logUser($tom);
 	}
 
 	
@@ -84,18 +80,17 @@ class CasServerControllerMusicMeValidateActionTest extends AbstractControllerTes
 	}
 
 
-	/** @test */
-	public function requestMusicMeWithExpiredTicketShouldRespondInvalidTicketFailureXML() {		
-		$this->dispatch('/opac/cas-server/validate-musicme?MediaLibraryID=STmarchepo&ticket=28282');
-		// $this->assertContains('<AccountExpired>true',$this->_response->getBody());
-	}
-
-
 	/** @test */
 	public function requestMusicMeWithValidTicketShouldRespondValidXML() {			
 		$this->dispatch('/opac/cas-server/validate-musicme?ticket='.md5(Zend_Session::getId().'300').'&MediaLibraryID=http://test.com');
 		$this->assertContains('<ID>300</ID>',$this->_response->getBody());
+	}
 
+
+	/** @test */
+	public function musicmeUrlShouldContainsTicket0a1b2c3d() {
+		$expected_ticket = md5(Zend_Session::getId().'300');
+		$this->assertContains('ticket='.$expected_ticket.'&', Class_MusicMeLink::forUser(Class_Users::find(300))->url());
 	}
 
 }
-- 
GitLab