13 require_once
'PU_testcase_dcp_commonfamily.php';
31 public function testDocVaultIndex(
$data)
33 foreach (
$data[
'import:family'] as
$file => $callback) {
37 $this->assertEmpty(
$err, sprintf(
"import error [%s] %s",
$file,
$err));
41 $err = call_user_func_array($callback, array(
44 $this->assertEmpty(
$err, sprintf(
"Callback for import file '%s' returned with error: %s",
$file,
$err));
49 foreach (
$data[
'set'] as $famName => $set) {
54 $this->assertTrue($docFam->isAlive() , sprintf(
"Could not find family with name '%s'.", $famName));
58 if (isset($set[
'param']) && is_array($set[
'param'])) {
59 foreach ($set[
'param'] as $attrName => $files) {
61 foreach ($files as
$file => $name) {
62 $vid = $docFam->vaultRegisterFile(
$file, $name,
$info);
65 $vids = join(
"\n", $vids);
66 $err = $docFam->setParam($attrName, $vids);
67 $this->assertEmpty(
$err, sprintf(
"Error setting param of '%s' with vids = {%s}: %s", $attrName, join(
', ', explode(
"\n", $vids)) ,
$err));
73 if (isset($set[
'defval']) && is_array($set[
'defval'])) {
74 foreach ($set[
'defval'] as $attrName => $files) {
76 foreach ($files as
$file => $name) {
77 $vid = $docFam->vaultRegisterFile(
$file, $name,
$info);
80 $vids = join(
"\n", $vids);
81 $err = $docFam->setDefValue($attrName, $vids);
82 $this->assertEmpty(
$err, sprintf(
"Error setting defval of '%s' with vids = {%s}: %s", $attrName, join(
', ', explode(
"\n", $vids)) ,
$err));
88 $err = $docFam->store();
89 $this->assertEmpty(
$err, sprintf(
"Error storing modified family '%s': %s", $docFam->name,
$err));
97 $this->assertEmpty(
$err, sprintf(
"import error %s",
$err));
110 foreach (
$data[
'expect'] as $docName => $expect) {
114 if (isset($expect[
'count'])) {
115 $this->assertTrue((count($res) == $expect[
'count']) , sprintf(
"Unexpected count (expected %d got %d) from docvaultindex for '%s':\n%s", $expect[
'count'], count($res) , $docName, $this->
dumpDocVaultIndex($res,
true)));
117 if (isset($expect[
'files'])) {
119 foreach ($res as $row) {
120 $files[] = $row[
'filename'];
122 foreach ($expect[
'files'] as $expectedFile) {
123 $this->assertContains($expectedFile, $files, sprintf(
"Missing file '%s' for '%s' in docvaultindex: %s", $expectedFile, $docName, $this->
dumpDocVaultIndex($res,
true)));
125 foreach ($files as $foundFile) {
126 $this->assertContains($foundFile, $expect[
'files'], sprintf(
"Found unexpected file '%s' for '%s' in docvaultindex:\n%s", $foundFile, $docName, $this->
dumpDocVaultIndex($res,
true)));
140 catch(\Exception $e) {
148 foreach (
$report[
'missing'][
'iterator'] as $row) {
152 foreach (
$report[
'new'][
'iterator'] as $row) {
155 $this->assertTrue(
$ret, sprintf(
"checkDocVaultIndex reported inconsistencies: %s", var_export(array(
156 'missing' => $missing,
164 $out.= sprintf(
"docvaultindex:\n");
165 foreach ($res as $row) {
166 $out.= sprintf(
" %9d | %32s | %9d | %32s\n", $row[
'docid'], $row[
'docname'], $row[
'vaultid'], $row[
'filename']);
168 $out.= sprintf(
" (%d rows)\n", count($res));
169 $out.= sprintf(
"\n");
170 if ($return ===
true) {
181 if (count($names) > 0) {
183 foreach ($names as $name) {
184 $where[] = sprintf(
"doc.name = %s", pg_escape_literal($name));
186 $where = sprintf(
"AND (%s)", join(
' OR ', $where));
188 $q = sprintf(
"SELECT dvi.docid, doc.name AS docname, dvi.vaultid, vds.name AS filename FROM docvaultindex AS dvi, doc, vaultdiskstorage AS vds WHERE dvi.docid = doc.id AND dvi.vaultid = vds.id_file %s ORDER BY dvi.docid, dvi.vaultid", $where);
198 'import:family' => array(
199 './DCPTEST/PU_data_dcp_docvaultindex_family_parent.csv' =>
function (
$dbaccess)
202 if (!$docFam->isAlive()) {
203 return sprintf(
"Could not find family '%s'.",
'TST_DOCVAULTINDEX');
205 $vid = $docFam->vaultRegisterFile(
'DCPTEST/Images/img_one.png',
'icône TST_DOCVAULTINDEX.png',
$info);
206 if ((
$err = $docFam->changeIcon($vid)) !==
'') {
212 './DCPTEST/PU_data_dcp_docvaultindex_family_childs.csv' =>
function (
$dbaccess)
218 'TST_DOCVAULTINDEX' => array(
221 'DCPTEST/Images/img_one.png' =>
'file param 1 of 3.png'
223 'P_S_IMAGE' => array(
224 'DCPTEST/Images/img_one.png' =>
'image param 1 of 3.png'
227 'DCPTEST/Images/img_one.png' =>
'file param 2 of 3.png',
228 'DCPTEST/Images/img_two.png' =>
'file param 3 of 3.png'
230 'P_M_IMAGE' => array(
231 'DCPTEST/Images/img_one.png' =>
'image param 2 of 3.png',
232 'DCPTEST/Images/img_two.png' =>
'image param 3 of 3.png'
237 'DCPTEST/Images/img_one.png' =>
'file defval 1 of 3.png'
240 'DCPTEST/Images/img_one.png' =>
'image defval 1 of 3.png'
243 'DCPTEST/Images/img_one.png' =>
'file defval 2 of 3.png',
244 'DCPTEST/Images/img_two.png' =>
'file defval 3 of 3.png'
247 'DCPTEST/Images/img_one.png' =>
'image defval 2 of 3.png',
248 'DCPTEST/Images/img_two.png' =>
'image defval 3 of 3.png'
252 'TST_DOCVAULTINDEX_CHILD_2' => array(
255 'DCPTEST/Images/img_one.png' =>
'overwrite file param 1 of 3 from parent.png'
257 'P_S_IMAGE' => array(
258 'DCPTEST/Images/img_one.png' =>
'overwrite image param 1 of 3 from parent.png'
260 'P_S_FILE_2' => array(
261 'DCPTEST/Images/img_one.png' =>
'self file param 1 of 1.png'
263 'P_S_IMAGE_2' => array(
264 'DCPTEST/Images/img_one.png' =>
'self image param 1 of 1.png'
269 'DCPTEST/Images/img_one.png' =>
'overwrite file defval 1 of 3 from parent.png'
272 'DCPTEST/Images/img_one.png' =>
'overwrite image defval 1 of 3 from parent.png'
275 'DCPTEST/Images/img_one.png' =>
'self file defval 1 of 1.png'
277 'S_IMAGE_2' => array(
278 'DCPTEST/Images/img_one.png' =>
'self image defval 1 of 1.png'
283 'import:documents' =>
'./DCPTEST/PU_data_dcp_docvaultindex_documents.zip',
285 'TST_DOCVAULTINDEX' => array(
288 'icône TST_DOCVAULTINDEX.png',
289 'file param 1 of 3.png',
290 'image param 1 of 3.png',
291 'file param 2 of 3.png',
292 'file param 3 of 3.png',
293 'image param 2 of 3.png',
294 'image param 3 of 3.png',
295 'file defval 1 of 3.png',
296 'image defval 1 of 3.png',
297 'file defval 2 of 3.png',
298 'file defval 3 of 3.png',
299 'image defval 2 of 3.png',
300 'image defval 3 of 3.png'
303 'TST_DOCVAULTINDEX_CHILD_1' => array(
307 'TST_DOCVAULTINDEX_CHILD_2' => array(
310 'overwrite file param 1 of 3 from parent.png',
311 'overwrite image param 1 of 3 from parent.png',
312 'self file param 1 of 1.png',
313 'self image param 1 of 1.png',
314 'overwrite file defval 1 of 3 from parent.png',
315 'overwrite image defval 1 of 3 from parent.png',
316 'self file defval 1 of 1.png',
317 'self image defval 1 of 1.png'
320 'TST_DOCVAULTINDEX_01' => array(
323 'icône TST_DOCVAULTINDEX.png',
332 'TST_DOCVAULTINDEX_02' => array(
335 'icône TST_DOCVAULTINDEX.png',
336 'file defval 1 of 3.png',
337 'image defval 1 of 3.png',
338 'file defval 2 of 3.png',
339 'image defval 2 of 3.png',
340 'file defval 3 of 3.png',
341 'image defval 3 of 3.png'
getDocVaultIndex($names=array())
static getCommonImportFile()
new_Doc($dbaccess, $id= '', $latest=false)
simpleQuery($dbaccess, $query, &$result=array(), $singlecolumn=false, $singleresult=false, $useStrict=null)
if($file) if($subject==""&&$file) if($subject=="") $err
dumpDocVaultIndex($res, $return=false)