developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 13 years ago

#180 closed bug (fixed)

PDO échout 2 tests (ACL) dans les tests unitaires

Reported by: turowbye Owned by: laurentj
Priority: highest Milestone: Jelix 1.0beta3
Component: jelix Version: 1.0 beta2
Severity: critical Keywords: pdo db dao
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description (last modified by laurentj)

J'utilise Windows.

Dans les tests unitaires "testapp", lorsque j'utilise le profil pour PDO

  • Le test jAcl : passe
  • Le test jAclManager : échec
  • Le test jAclUserGroup : échec

Si j'utilise le profil pour mysql, il n'y a aucun problème.

Example de l'erreur produite sous le profile pour PDO.

Fail: testAddSubject -> jacl_subject table should contains given records.. Not found record : array ( 'id_aclsbj' => 'super.cms', 'id_aclvalgrp' => 2, 'label_key' => 'cms~rights.super.cms', ) at C:\xampp\htdocs\jelix\testapp\modules\unittest\classes\utjaclmanager.class.php line 63

Fail: testAddSubject -> jacl_subject table should contains given records.. Other unknow records exists at C:\xampp\htdocs\jelix\testapp\modules\unittest\classes\utjaclmanager.class.php line 63

Results from database

Array
(
    [0] => 
)

Records we should find

Array
(
    [0] => Array
        (
            [id_aclsbj] => super.cms
            [id_aclvalgrp] => 2
            [label_key] => cms~rights.super.cms
        )

)

Change History (2)

comment:1 Changed 13 years ago by laurentj

  • Description modified (diff)
  • Milestone set to Jelix 1.0beta3
  • Owner set to laurentj
  • Priority changed from normal to highest
  • Severity changed from normal to critical
  • Status changed from new to assigned

je confirme le bug :-(

comment:2 Changed 13 years ago by laurentj

  • Keywords pdo db dao added
  • Resolution set to fixed
  • Status changed from assigned to closed

Bug corrigé dans le trunk.

Il s'agit en fait à l'origine d'un bug dans PDO de php. Lors de l'utilisation en tant qu'itérateur d'une classe qui hérite de PDOstatement, PDO appelle directement les méthodes de PDOStatement, et non celles de la classe héritière.

Plus concrètement, avec le driver pdo, jDb renvoyait les résultats dans des tableaux au lieu d'objets. Ce qui provoquait des disfonctionnements dans les dao etc..

Note: See TracTickets for help on using tickets.