[Erp5-report] r13958 - /erp5/trunk/products/ERP5OOo/tests/test_document/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Apr 5 09:35:31 CEST 2007


Author: jp
Date: Thu Apr  5 09:34:37 2007
New Revision: 13958

URL: http://svn.erp5.org?rev=13958&view=rev
Log:
new repository for test documets

Added:
    erp5/trunk/products/ERP5OOo/tests/test_document/
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.bmp   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.doc   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.gif   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.html
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.jpg   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.pdf
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.png   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.ppt   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.py
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.rtf
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sda   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdc   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdd   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdw   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxc   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxd   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxi   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxw   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.xls   (with props)
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002_ind.html
    erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002s.html

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.bmp
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.bmp?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.bmp
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.doc
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.doc?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.doc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.gif
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.gif?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.gif
------------------------------------------------------------------------------
    svn:executable = *

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.html
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.html?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.html (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.html Thu Apr  5 09:34:37 2007
@@ -1,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<HTML>
+<HEAD>
+<TITLE>þÿ</TITLE>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="generator" content="pdftohtml 0.36">
+<META name="author" content="þÿ">
+<META name="keywords" content="þÿ">
+<META name="date" content="2007-04-03T14:42:32+00:00">
+<META name="subject" content="þÿ">
+</HEAD>
+<FRAMESET cols="100,*">
+<FRAME name="links" src="TEST-en-002_ind.html">
+<FRAME name="contents" src="TEST-en-002s.html">
+</FRAMESET>
+</HTML>

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.jpg
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.jpg?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.pdf
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.pdf?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.pdf (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.pdf Thu Apr  5 09:34:37 2007
@@ -1,0 +1,146 @@
+%PDF-1.4
+%äüöß
+2 0 obj
+<</Length 3 0 R/Filter/FlateDecode>>
+stream
+xœSÉJÄ@¼ç+úì!¾ê-i„t&¹üð 8ßê%ލBxK½ªz/¢>›%JZ(\kToÑu}Vwê½äø\_›¸4η½ê:ËâåIÝÏPÐjyQ'h1bÔòÖhÇ*I'q)Ê·/Ûv[&GgÕ@—~¯è%Ȑƒ‡>"F¥/ˆ)×L`‡e&åÏßú}À$3€f`rÅ´4—e²õ»L>7…Öo| 2K\•»5>ŠÏL’zËÉiê˜]"»ÒµzWe+ðJNzBñð(ÞX96Df
+/C2˜Dt®êžza 7äúj zª¬ÑR‚LY“›þaMâžÄóK‹/‡@Þ®ÎîõVM|ÒÛU»|Y7н€ìH	4í{õß¹MÆ_%ø ·"PæèÝçÈΑn§–Gb$kPUqËaß]Þ+ÃŽt´d­Ù}‰tøÌ¾òS½7҉&¯æ’9ü±z–]Ô‡‰Ê
+endstream
+endobj
+
+3 0 obj
+381
+endobj
+
+5 0 obj
+<</Length 6 0 R/Filter/FlateDecode/Length1 17020>>
+stream
+xœÝ{	xיà«zU}Õ§¤–„J:i–,@¢…ԁ.KBF-uKj]-º[ˆÀ°‚ÁvHDOœŒ-“ÄÁ'ؑ“qlgb¯×¹M␕ù²û‘|	ÅþïUµÂŒfvçÛýFåîzõÞÿþûzÕ8 ڋ0ò´÷ùmïދz!ÆÚ>¯þcqÆ¿‚Ï±ŽÎ¾·þtïÏÂQ€9ÔÙ;Ã’QüØj	!ãßì
+øüÿíᲄ’`?ZÜ+¥~5BÉ`aW_tǔ1yž³áyWo¨Ý·¨5Âóixöôùvü„_°É—àYì÷õ¦ÑÀ#-€¹E¢ûPþ
„VL“õp` JÍAheBü=0ÇÀEþ0T‘gs¼J­Ñêô£É,X¬6»ÃŸàJLJ^€þëÿ1:A,:‡Þ€ëÕ n´@§`ü[´“οÂiÈ3ïóötŽÉ8–\L aÑˀ§Ö~ðð|
+µÑõkø-z=†ßb‡‹`Ô@wœBçðrŽÃoɺë
´=ž$cþ-tàÑ{p­ìëЋè}æ‹è4ó.ڍŽ q”Ìèøw—nÔÆ¿K¯?¢ÏQÊd®›WeJÝ 狀ý´<Ïä0¸w0›@B–y¯…Ù}¨›kÂ…+‹^•T>Y–Ý	ôyÑ[ìçØ.‹yèoþ'ÑJà·8]–ð/£Sü%ð¯ uêu*£RïF꡼3©’Q+ڍ›CÃŒAuÃŒ{@Ùѳ*žÃ,ƒÜ¢0ÁfTû'<wmÿysjžû¦GQP‹¨aÂ8"ž»q£a—Èožà“&p†f‚ËHÿõ§-þ:Ͻ¾a“8ñº·RÁêm­„¹¦M0$O0
óÞÊ<b§é8×ÁŸ† F.ûRýˆÑð[YL^ϼ	§.NÚ,©–ŒTKj‡¦#8qú·Òqµé/ÿ+¬Ê˜³Cü­;™ÑNO¢–×㐺ÍȄÎ¬áÌ*ÓBÁ‚ªXA¸8yizò’pE¸r*¸RtUZ1YTȬŸÐ6oz		ȸ$ܸ°Ô²déæ³)f+,ê›×Ošï&7.ÈÈC!<úK«eÃŒrÊrÞÂoM-)¶¤:ҁÑô’TK±ƒ9p^ªÞÉçÏwsW/3­Ò©Ë3t“<±²Öðdò¸]vµ‘‰Û§Ã£üöD«	3£ºÃ²¬´%¹Uf·-˸Œs»TYÈÍ.®^š*ºtuê’+…ϤìI™HÁ”q‘jÃ¥y\2ÏÅÀ%ᯌ).r:€MÂö™éi*òÐ|f‚é*þFïęÓ7¾mtïþSݼ§ûzKoÿzý‡ÝÝ,úÁØóg%W7±H禘"=r jOÖZGí'è	a•ÑmȲ™Ý–B'°\4}‰˜²`ªhzê⛅gÇâ˜Y”C'\2‡¶;Öìªô´L›Ì0ü£Š‚üŠÕÿã©ë˜ö˜ZfÐ/Ha“Å2½A_«7ˆ©œ“ù::ŏe9¿î8Ã¥³ÃŽjÍõ†ÔdM\ž#¹Ì¬ÉrT-dóÌț+\œºxiŠx‹ÅJ´¾xizê*ÌüùŠ%®´<Z-˜>†¡š~oN;+.Á<›²R²Ä¬Ô¬´¬ô-º-ú-†-Æ-)[Ä-©[Ã’6¥ïOÙ/îOݟ¶?ýxÊqñxêñ´ãégRΈgRϤIOö,Ú³èiûӎ§OÇ=ÿtÂyûyÇyçù¸óñçL[ÑÖ%%Ã…Àt‹KîÌ,`ò™ª¬8Gz>CLhw¦0Yw‘nîÈý»îÝö较;úRóóíÝÜ}ƒÑá-<±ï£7:'—ÿexhëæª–;òÜ_êxðŒ;÷÷ÑÆÆŠ»ró
+Ž„Nü“›F獹C QÊFŸ÷$¦ê``FҌÙRH?²`,ó°­LÃŽ&ð(5/Íèv™Q–žwÂ¥9ss¨§ŠŠ.É$1wIºòçßQ––ZJ­¥…ž…Bn(wGö…\n4ûs½€'¹I~R5é˜tNÆ]ˆ¿pÁeÜ
+îR"²Û¨Ûš@âL"j	õ_uz	uj\ðñÁý÷E#GΝ–N¯<ÕóÌ¿^yŸaÚׯ°­õ{-?ÿˆ©ûõÐhèÞ˜¯ÿ¤;²®êÅSÿðlõÈ>Û{99@tÞ¸ѹ‡ËB&tÃŽSªÓ²šq£É¨W©Mp+Ó¨ÁÕ8žU•1ªU#Ġ'!‹O"“Q«Q«8iÍzÖ,\|œ„ž^1WdQü…ÿ8®H-h>–?ä	ÜF£#n³VÂ¥vª³Ô¢ºIÝ®R«56«CëÐe \.—ÏÕæêrMKQ¡°­1®1mD›L¨Ë4Ä
ñêšÚºÆ$p“TbƑ®•osMa.?É,b3cÃÒ~±§çzûAOÏteÌÒ-`i;JDuž®1Š4òc†ø1ôëaCkÂ’Fëp¡DÆeÃŽM®NAZ~SŽˆ)A[ZÃ…dOòždü6z›y›}Ûñv"O,—*›mI11*¹!5uX5×2ýÑã_ùJÊ1÷ǯ\–~Ë8ó?ö¢êè}{X¤yïƒ=»Ÿž`Š¥iæNé½gžéåç”ü‰ßnãÑÞ4ÖÆ3È<jA¼ó°Q;j9©×iØ<$¸­š,ƒÛT˜ g͋SÂ$ñÁ+EÃ’aýC¸`¡g)$tF`,p/8§'ĸ<ÈÃxXöp¾Òáqzâ<ñ Í`‘YÕÖÙ–@sX\rc,J at Zf˜CvÃŽwºùºõ÷}÷ú[$Õ.~r4¯Ë‘þ\_։dÕnÜ|)Ôc¢^(•R/Lb°g33ÃŽ2fSbëBãf³I¯cµã&³I3®ÖÀ£¦L«aX†W±ê2–ej5ɬمX§2œQ«Â쨞;iýj2ë0éÀEA[³ž'CM¼8e)U€5§¨¯
+W~JuAûiNK|šÁ}Õ&â¾[â„ÍLÙÁpj³CÈásTà¬ú,S–9SØÄ4±ø~ĻAÕ¤nѵè»?ԎV•_=㠪ìçñç¹(UhwvGLľAaÈ2äJJʇæ—Ì÷hýYJ2dž¯’"óü;¡h4TÐ^tªtŒŠ<ƒÿ%æíkÞu·`~£rùʙ:~”Œ<ùj£ÝÅaÂ¥ŸüWbkÜ¿£;n§·ŽBEî¥9uøèß¡u˜AË¡îeñÛQêò$Çé`³CC=ªbOÚ[ãՂ…qkù,ÂŒ
+Ⅻ+H ¼)×2O
+Ã’$¤bÃ’	—ñ´	ŠGñJäqðj^ãP;4™êLMAž„±„ñÝV[:pKúT˜ØÎ,ùùã?Çl‘ÎÜYµv5{HóÀÑñ/A¦aÖIÏö\ßz fö£û|SîûJ¹Aó)ȍ:<Ã…ndflB’ˆsÐhrÃŽ1ݾkj×~,ª÷Õä“yÚ<õ·˜dÃŽB%™.õgn1ÀU¹ºϝ‚L$\ùÅïh½ŽƒÒB«‹Ã¥ù{ò'ò9°„…ÖŘӬ¤>ĖÜi%,ÁÈÚ§ò”pÅӗƒ6µZ֕~üÄâ'vNþõ/¯í|b1Ó%=òÐáÂŽ}àðCøÅé»û×ÌÌ_vµ~rÌ¿Yrí³x›ÿLtøüõóŸýæõJfýz=;JEõžL''80J8fL9¦¶ŒÚ¶£Qu«ñ0ku;œÅ¸QIÂ’K—›ö*hñ¬©KSÓSŠXT¤t!}OúD:ˆ”+„11ˆKá’9‚pÃ…Ã’#³ü?Ã…tœ‹ñßÝ}f–i6§ûoo¶®»Á>zðªE3¨ÆHˆÇ.GÂ¥Š@<aqJ®Š	¡8¢­‰L>.–ìvÄv;qâØ±<ô{éwLÂåËL‚ôQÕ.]º|ùÒ¥?´C†—˜"é_$IzPOê.Tâq¡GãÆ°ñ„áa˘ö0nM4Ã¥\ÈîRÃ¥&ß¼¨01MêPáÙPé-g+
ÑI¬9"ŽÊ%gýb‚ðàú}àŸ=ÂŽ#_|ø‘LJp1«ž<lÜ`î((”þxxïG¿ûÝïwí&ñµ¸ùšÃ‘Im+‡Üq]nf™É-d
+\ÀÕ%b<b;d•"¹=§§	ˆ22r)QöÝ=‰‰ìLªpÑTá"`r5IÓðÐî]öQK:û.³é)é±âÇ{žyâ³6ì\ÖtE÷‹Ý¡×ßcK{®?üê—_üó¡œëÔ÷€NÑ7=å¢ËfäT‹V'ûpÖhÎɌÔx»žWæãÃéN-J°éVÒÜ¢úxÕª¸•	Y·mU¶;WÃŒZèÎ,¼CI—¦c)Šɂ+®A”®™ã ¬zô«Š¶…о\4QÄϦÃ;¨Œw˴ϴlº}A\AüÛº·õoǽ¡H»•¹uvüÄÃL"Ã¥2Jþ¡ÿ‰Óg$öTkhçNIåÎ҄ú5ÿ®3xÓàðÛÿF“hÆ7™nÖ=~@‘Ü=°x{寇Ìè
+D€Ý£Å>m«A…A îvuªpɜcÊ+5¥KêꖔÖt-­«[º¤®–xÍvHsçàTªGK<v*¤iãPˆÕ2‘Eò©ù`TDÏEÈ
+=ÆBcƒ±Õ8`Ük7ª”è–…Kg®½|ý¹—_f×¼ÜÝÝÍ£žˆÑåRw,j@éhƒÇÍ K26rÇ\à˜iFEÝ1ûaW«x¯ùäÂ7R» ǙÜÉÊ2.h沤vŒgÑL’ù‰ˆfFɆTÙY1-[v–$RYùÌé‡9zôÈá‡Î=ÃIªùË_&Iª¹~ùvmðÂë¿ùÙÏõãïõ@²‘~|íšôú6¿”ØCÎkËACµÈ㱪F5Û94ÊB
+ÌRc7_¨“õ£áШŸshÔQ÷ÑÁ%»Ï¬ª˜Ó„0pBôä‘OÛÒeæ5ô!Ò $#
§Õ ފ°šŸ)â¶ÐªƒÐq‹—”«Têu÷lzMsôÁy_ؗñ­?m‘9Ã¥>N˜=žMqãZsÜáÔjÌã‚Y£Õ˜ÆµZÍÎZe‚`6—™ÌN§£ÖiÖ`ÚQ=7ªÚoHvҊk6³A§²8ÕV‚ì¡ÎâݸòI…ÖRh!”xš‚~ŒÚfæÄ)·`¤ù‚}„ÿ8҇™IößÕ­YëÔÄ95.³Ë™©É1ç8—šK¥qkÍ-šæNM§¹ÓÙ7¬¹ÏyÜü¬&žÓªuj=oà*2©Ì›Þ®vZµ6Mo3،V“`r˜íñŽ8g¶6[—­Ï4å˜ó„\K®u‘ÝíÈq$.6,6.6•
+%¶RǪÄ*m¥¡ÒXiòÚ6k7é6é7š[,-Ö[—¶ÃÐaì4̝‚Ïâ³¶Ùögk"=¸èG…–Ö!Û¨ãíý ã s,ñ¸ù¸ðœöyÝóúsÎfèsåF¬”}Pm)f×]Ÿ>vg.<ÊüúYi’9öèõ«H¯=Cü`ZÏ|µ§Gúùº™ï~VMEHõ2äu;3é¹[?n³ÛtãZnez¬kÉ	Ã,]¶šGŒF£¶•Ùm£A°°Ö2£ÑPkÓ1Xc1’ÛÌ¡“zÝfŒ=é³Ék63or€{уà
+(èä(÷mµbReŒÚê$F½})ãÔ¹l·.ÛV̬ԕÚ*™uºjÛFÝ=6?ÔmQèWGm÷ëœ*¤f4¬’¯QkU`\Ae·ÑsŽ
ÛÈ9G%¨ã4‚FÐZuv}¼Ái³Ù3Q6“£ÍÔ¥ësÁ´¶Lû2´œYŮ«¸Uü*Õ*õ2Írm©n¹a©q©u™­Ô^…¼ŒWãÕVéªôՆµÆµÂZËZëZ[•ý.ÔÀ4°
¸kàT
êMĦQ׬ßNÐdop¶¡V¦•õc?G­êVM«¶Mç×wØÚì­ÎA´ƒawãÝÜ?¢Qj<)#Ú!Ývý aÈ8d2ÖakÔ6l¿_{PwÁ¹\CËØäTI	²{Øü#üñ1æCÒä£Ò5é¯I¯
3¿þöÆ
+uòUörþ%ïéy8—‘ÞúiîœÒ±­ñd¤òèØÓÄ31£:6S«æ°5Ñ¥/±±n‡<¨0m&¡~¢a;»Îß[—̼u‹eOð[fNvuLÍ˞Ò	&Ë«ô\ßlú<ÓÍ*iõ|ì4¼øMBÛ=™j'²êF!Õqc	Ûè]sÒ¤52yȨWg¡Å63p\˜KEn&ɛCú2NÃ…pìƒDc%<-˜“l“i²M†KN¶ßo뱫0 tFn®’rˆ%ábåµÞîcšê;›™齩ëߞ˜˜xî;ûWó	ëë¶=Ø3ý}s·ïì³ñ	DïïBÅý%¡=gŠÇ5×á3k[ã­*(qñÂEhÂ¥H«w‘ô›s˯eÎøÝÚ¥KkkJKkj—–ÖԔ.­¥%yim-;©Ì¡«Ù³P›1ÊõXXw8>ײ(ȱˆÁoҗ}WßTÂôuòٜÆ3é¬õÔõ+§øwÿÚGÏûzä,”ÈLx:-k·;ì¦q£É·2³	²†ÞÀË4$°Ì¸J­Bã‰H
·29œŽ›XFj…äFœÆå$o’âñI(X3jÑ%&8³	‰Ä`å´Ö¸$(Y?›”ß+‘\2}	å“/œòF›—¼ÕN¢ÖM‚KéÄ~Å!ÉM(×´U›6¢êͦMŽÔ¡î2u9FL#Ž}èÉ®c´¬k*3ŸÀ»T‰.ÆÅºp‚>Áà2:Ì			.Gb6Êaܬgè3ÙÆ,S¦9SÈ´ä$串KÙUl)^…×¢jf©Ê¼&q³™ÝŒ7«€ q£iƒ¹ÅْÐâjIìfºÙnÜ©îÒwºhéH܁v1»Ø]x—jÄ8lŠš£BÔµïp9]ƒ‰ûÑAõaýaÃAãAÓóû~Çþ„ý®ý‰w·µÍ-zù¦¼[`›9Æ<zDú©9$9|ôûû¥Þ#L†ôÒ™ö°™b¨#ÃÒ¨#eÒ«ð}ŒyÚúۋл>øÊ6óŠ?¡
ý
ìù³ëÄ~#ïtÔ÷@¤"èE˜ØdЗ÷IÉs6Ȏg´î-ÔÁ· ;Ÿ…Ö±ch—ˆ"ì!ð¾×Pᕮ5îEԁ߁y¼-çS`|¸ƒÏNg¡%êã°ÿzNÙÛam9àZÏë¸÷ÑrÕû(•Îý`΢wჸ/Gih'ú“ɐ—zëØIœˆp«¸Ç¹i~;ÿ¦J¯jT}O]«îSM-iŠ4MÚ2Ý:Ýãz•~¹þC•&ú|–ÊÂÒßYԀ[ÏßCâ朌iFæe3ò“ßu–)cñ¨Nc˜oRÆÂŒ;•1Ib§2V¡xt@«áÄ3®Œ5ȄÞVÆz€ù¹26jmèO„NOQF3([·K³H§;­Œ1ÃŒ?¥Œ9ÿTó(^')c*Ô;•±µê«”1¤fýe¬6^UÆFk¦þՊÐÀH8ØÙ³ÛsÄ¢ÂÂb±mD\ÂŒF¢á€¯Ï-V÷·ç‹å½½b#ŠˆH <ðçÏÀˆ-°Ol
+„ƒ¡>_ÿ­n	è
ø"ñŽü;
+gÖÉ2]Í»®`Dô‰Ñ°Ïèó…{ÄPÇ͜Γ§®ht`YAÁððp~[l!¿=Ôw[Bu·’Ú¨û÷²dÔu
p_0	†ú	|W ‹á@€llïò…;n1}ý#â@ 
¡¶¨/Øìï:íÀ8ŒvĎP?0æky/ú"‘P{ÐôD¨}°/ÐõE	?ÁÞ@DÃŒ&é±)Ôö…i9”“p` ò¶(D¶
F”‡yÜb°¿½wÐO8F»BƒQ`¦/¨"ðaY›€v0ðD·Ø R¶õ#]î94܄fA(,F`
+€«Šø7‘&Ìڢ訢:Jh¸+Ô÷É
Äƒá~  ý!1r‹‘Á¶î@{”ÌÈ:îí

ÚCýþ ‘#²Œ´}m¡¡ŠÃ‚ÂŒ#ô‡¢`ˆˆ<Kì20ëòšéòXmEoÀH°_ô͓4ÔžûBáÀ-£#ʏ±5½Ï7B(ô…üÁŽ q6_oÜ€Öç÷Séeõñ_8ìõ…)) ì짌töŽtEÈ&⥾v@!;bEn¦${_Vš¯÷Ö”=1>f±{ý½#bpž«ƒ8áùg2–"D•Ä6±	ۧdæ‡CaDL›‰Æ4B;¶ ¦‘àMS”Ö©Q¢¦-ækë
YzÀ}“aº|Q±ËŒþùZr³>îûý
+ËiósKš,ãg[6ê%ÑMMGÃ¥{I˜‰øÚ{| Äch&‡Ü¾kÍ#‰˜ôvÈl­õŠUõuÍbS}UóÆòF¯XÝ$64Ö·TWz+Å´ò&xNs‹«›×Öoh¢±¼®y³X_%–×m×W×UºE閭FoS“Xß(V×6ÔT{a®º®¢fCeuÝq5ì««okªk«›is=ݪ ªö6dµÞƊµðX¾ºº¦ºy³[»n®#8«ÞØ\]±¡¦¼QlØÐØPßä•€¶®º®ª¨xk½  ª¨oØÜX½fm³65ä[ln,¯ô֖7®wëAäF‘‚ä—€Cô¶ÍMkËkjÄÕÕÍM͍ÞòZK´³¦®¾–èhC]eysu}¸Ú¢”¯®ñʼ(5åÕµn±²¼¶|·i–SęUÙ°Æ[çm,¯q‹M
ފj2¯kòÞµ&ŒÂŠ_â<ÍõÍ3¬l¬nòºÅòÆê&ÂBUc=°Kì	;ˆŒ@ŸÄxu
+¿ÄFdî“ÞPd·"`¥·¼66>KýË»£=0%þ­¹œ$iB•³¨›z®œÀ×ôCøÊst>
ñE+œåæwn%	“4UINÂþ¡’T†ƒïPûBJý‹øz욁‚œéë…m‘6çU¬0„ƒ°e8ÂŒBJ}ƒ0ÂŽ*%9¬”¬›% Tnæ?ˆ@Ã…
+zGò6LêÃ¥$Øß
+÷)¢SõµG—ÅriTì¤Èý x(ܙ*P
 FAèp»P‰(µ£¸AG[ˆŠaÔ"Z
0QOõ!7ÃŒV£~€Ï‡Q9ê…KD3¸"ô)ÂˆZ(„FMtD°3k>À»;nsùð)¼ÅþØîÙ½y·ÍWÊOFQ:ㇲ/ÂŒz`.¸þžNoÂ…?¶öÏrF¤»mÛØÿl©	
òi 8û(Æ|‡`=†¿‹®ù:)Â¥~ÀG¸$¸:èj`†b;ì <tœ›ò¢\öÓý[D¡¬QXÂùt*ò´+áŒR.­Â¥-ËÝNáúáÞ;ûoÕÂŽ4jA²×OïÊW;ìñ)ò‰ð!3ƒ@%@w‘•˜~:`ÔKíF0Çxϴ@â€ðEÃT#JqV'df£Ã±Ã©ÜÔnĺ½°Ë?£“aê]ù¦Ìí Õ¡{ÂŽuȸÚ3fë€j£¸#°Ûý)r¸gä,Ñ;ƒ;¨hu¾õ?[ê˜ædnf<:z“×ÍJ4LõÑw[bÑÐ2„©·FèžYŠ~úMh¸éh¢ Ú)>f®yCÔ.²…Ú)m?Ã¥8¨pºl&B›•>À¢9bÖsóÒ¬>™ú>ªDDdl,^fµ67ÌÝ'R¹}еÚÍÌú›¬‘ Ýçû›ÃŒrÃŽS/
+)Z¾]‹˜ÊoÍwþ'´õYû‰^Ffdè£Q¤1Ël„ÿ¨’ýä™[¢WÿÛÏõ>YòJEÖÙ `ñÑ}1©ü”[b³þ9é8"Q—2ž“K}ԋdŽÑ¸YG‘¿+ÓÜ\çŸçi>j§Ûç`>›õq+Þ܊Í{é¾àgdõ°’”¯¾yxc3‘¯ŒÅÍÍU$ ä»À<ÍS©ütÚ-jcڌÜ7ï ð±Ê›v“§É±SsS­i£±šÃï 1+ÁjðZ T×ýJDÀ%W2Í®™sm/óýÙÓE³½Hï…Dz:H¡ækùVšçho®ÿOb6B³h¬vÏF],¢H'Ñ;Ӌ„•ó1PÏîïNÃ…jr}ì§ú½¹ùÏÈZŸ.U›+QÂ¥>vÌÓÖZ䥴êQ<ZõðԌ6B‡ÙHתaN„Þ®VZà©f+©}Êé
+YO£‘¹Æc=Ú@qÉ8á›àÞ3·HŸÉÓz€¯\d¯m¢4¼€­‰B6Rܵ0[w¯GvTÀÌx&ã5ˆt§2½:ØÕLcˆì#¼Èœ6Ãü,Õù\USŠ1ÃŽjá©ð¯UVËw5Ã…GøwSM‘qÝŸU
+§åTG3ÁYÕÐ'2»î
–¹­£2TÁº,‹—r [Bæ¨î
@›@¬¾š)„R³é¦y*é~Bu=•9«W¬LƳXò]Ê|ý·ÌPn¢ò×À%Rù›a¦™Ú¦ðÇðÆ|g
ÅP;ãG¨|åTõ”ÂjºF´HôY3Ù8Ç*T_Än„óJJ©œj¤é–’İͷέ¼#Fa
•ÏK5UC¡›@^€¯ž™‘ý±šÊZ¡èVÆ)û½ì5s´[Ae$–½¨zŸ*§º›/…!„ÿY)d”+ßst6ký:ź3¶®§^öI­l¤±è¥PåÔÖM3Z¨¢ñ[«p¾aއÅì¸AñÏúÎæë7G1¸ÛÉ2®íù¬¤þT£pØ4£¿w6y¡ÆµÓóOt&ϯäs;ÉÙun/ꞓsçvr6^Caûn‚›•ó´\¿fÏ@s{¹Ïz' ÷ø³p¬‘s¸|VšÛ	ûiÏ.÷„‘™.E®#¡™Ne˜®ÎÖwùtØG!æžÿ"”®,Ù ²ãf\rŸé£¡¹…6?«RÝ|b µ_¦2LÇQ¥K!ò
*°d~ô¦Srø¦SÖß³AL–¿§ÿ0µ÷€rÆ
+R
“þ2_ÁF±óÚ¬Nˆ:èZßMVŸõ>‚mº¹/%:èœÃ¹_±xˆöùôwlùß,BûnõÿΞc÷z~õ#	ÿІ_›\È¿æÇ¯y¸É…øFüê+Yü«~üJ¾°Ÿß_ÔãôøùçìüóEø9;>W„¿/ág%ü=	GÂg%üÌÄþ™kxb
~ZÂOíÆÿ$áo›ð·ž4ðß²ã'
ø›Eøýø‰øtþÆã~þ~܏¿~ÜÄ=ŸÚ¡ãOeàñõøkþj>>yßþ¤„¿ò˜À%?&àG1ñfàGƒÂÂ€Â'ìøÄ^î¸	÷pgàc_*äIø¡müCøÁ£FþA~ðãñh¹£_ÖñGøè9yª¹/ëð—/pc¡ÝüØø/èù,øwFG–áÇ^àKøÐý[ùC/àC{¹ûfð÷oÅ÷{¸ƒÀ×Á|ßß|ß¹<7¸¼Hïóã/â/:ñ½Çñôx¯ßÏï•ðž^ß“€?¿Ûľï6á];Íü.ÞiÆ£ÇñˆïÐáá!‘¾†‡“ø!&á(lŠ.À	‡%¼}ÀÈo—ð€x¸ÐnÜßWÆ÷÷à¾2ÜÛcà{Ü»—ë1à×
$»¯á`×|PÂ][ù®p×^®³#ƒï܊;=\G·IØ'áÖmù|«„·åã{$¼UŸ[ïލ·Hxs%Þ$ányop“7Úñ]E¸¡ÞÌ7ìÆõf\WîYkôxW§iøêãxm^ƒ~
WY±—ÕñÞ\Yaã+{pÅj¯°áÕåz~µ€Ë=Z¾\=Zì!zlâVÇe\_V‹W®°ó+×ãËuü
+;^áá–ëð²R+¿l+.]jáK­x©/1âÅ.¹ÓΗHøÎb§éøb.ºCËép‘lŸ;´¸° ž/€ù¾ \àòèø|ÎßËåiý|Þqì^dçÝëñ"b‘/òp¹Àz®çdò9Ã¥8Ë.ÄYp˒pæ2œa΍3¶â…éV~aN‡méVœîáÒ48U΍S·b1Å‹ñX¼À¥°&âx	ÇÑ8	;ì°ÛyG¶Ûl¼ÝŽíÃŽfÃV€³¾€- ^‹„¸	«±ø7Ç&X3IØŒñØèáÖÃ޳´ë¶ð;V[°Š/âU»1ûø"ÃŒ2.RV‡™&ÂŒ$̜cüûŽ0‹þ¿ýCÿ¯øÌ¿d„þ7­R}÷
+endstream
+endobj
+
+6 0 obj
+9664
+endobj
+
+7 0 obj
+<</Type/FontDescriptor/FontName/BAAAAA+BitstreamVeraSerif-Roman
+/Flags 4
+/FontBBox[-183 -235 1286 928]/ItalicAngle 0
+/Ascent 928
+/Descent -235
+/CapHeight 928
+/StemV 80
+/FontFile2 5 0 R>>
+endobj
+
+8 0 obj
+<</Length 358/Filter/FlateDecode>>
+stream
+xœ]’Ínƒ0ە<EŽÝ¡"	-´Bji+q؏F÷|Á‰ËêT™nŠßÜ j˜XÛí`N»Á½3‘LwjZfaT}c£Ø×Öó8A_™vÈó(~÷kãäf¶:èáOQüê4¸ÎÜÙ꣬ý¼~Xû=˜‰ñ¨(˜†ÖïóÜØ—¦‡8T­+헻i^û’¿„ëlÉ0¤¢
£m¸ÆÜ!Ê9/X~¹ýo-áTrkÕgã|ªð©œo7…g8Ý!'Ä{äMà,AÞ–9¥œQNм£øyOq‰| {)çŒ\R<8œ(ž!Ÿ‰CüBì/•NŒ>‚ü3<K,þ'dò—¸¿ ÿ
ž+È?C±ø—Èä//þGäÅ}ù§x±øã}ù'dò—Á“ü³]hÄòDZ%øf~ZÍÔÃ9ßæð°B±³ß·g‹Uáû:ȱ§
+endstream
+endobj
+
+9 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/BAAAAA+BitstreamVeraSerif-Roman
+/FirstChar 0
+/LastChar 30
+/Widths[600 666 644 319 513 317 596 564 591 478 564 644 401 640 640 602
+560 644 948 317 395 640 319 317 605 855 640 370 336 336 563 ]
+/FontDescriptor 7 0 R
+/ToUnicode 8 0 R
+>>
+endobj
+
+10 0 obj
+<<
+/F1 9 0 R
+>>
+endobj
+
+11 0 obj
+<</Font 10 0 R
+/ProcSet[/PDF/Text]>>
+endobj
+
+1 0 obj
+<</Type/Page/Parent 4 0 R/Resources 11 0 R/MediaBox[0 0 595 842]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 2 0 R>>
+endobj
+
+4 0 obj
+<</Type/Pages
+/Resources 11 0 R
+/MediaBox[ 0 0 595 842 ]
+/Kids[ 1 0 R ]
+/Count 1>>
+endobj
+
+12 0 obj
+<</Type/Catalog/Pages 4 0 R
+/ViewerPreferences<</DisplayDocTitle true
+>>
+>>
+endobj
+
+13 0 obj
+<</Title<FEFF007400690074006C0065>
+/Author<FEFF0075007300650072005F0030>
+/Subject<FEFF007300750062006A006500630074>
+/Keywords<FEFF006B006500790077006F007200640073>
+/Creator<FEFF005700720069007400650072>
+/Producer<FEFF004F00700065006E004F00660066006900630065002E006F0072006700200032002E0030>
+/CreationDate(D:20070403144232+02'00')>>
+endobj
+
+xref
+0 14
+0000000000 65535 f 
+0000011267 00000 n 
+0000000019 00000 n 
+0000000471 00000 n 
+0000011410 00000 n 
+0000000491 00000 n 
+0000010240 00000 n 
+0000010261 00000 n 
+0000010464 00000 n 
+0000010891 00000 n 
+0000011180 00000 n 
+0000011213 00000 n 
+0000011509 00000 n 
+0000011602 00000 n 
+trailer
+<</Size 14/Root 12 0 R
+/Info 13 0 R
+/ID [ <BB35E6D5E66F5F64EEA7126491BC02E9>
+<BB35E6D5E66F5F64EEA7126491BC02E9> ]
+>>
+startxref
+11951
+%%EOF

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.png
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.png?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.ppt
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.ppt?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.ppt
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.py?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.py (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.py Thu Apr  5 09:34:37 2007
@@ -1,0 +1,806 @@
+##############################################################################
+#
+# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
+#                    Kevin Deldycke <kevin_AT_nexedi_DOT_com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+
+import os
+import cStringIO
+from xml.dom.minidom import parseString
+import zipfile
+from cgi import FieldStorage
+from zLOG import LOG
+from zExceptions import BadRequest
+from Testing import ZopeTestCase
+from DateTime import DateTime
+from AccessControl.SecurityManagement import newSecurityManager
+from Products.CMFCore.utils import getToolByName
+from Products.ERP5Type.Utils import convertToUpperCase
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5Type.tests.Sequence import SequenceList
+from Products.ERP5Type.Cache import clearCache
+from Products.ERP5OOo.Document.OOoDocument import ConversionError
+
+
+if __name__ == '__main__':
+  execfile(os.path.join(sys.path[0], 'framework.py'))
+
+# Needed in order to have a log file inside the current folder
+os.environ['EVENT_LOG_FILE']     = os.path.join(os.getcwd(), 'zLOG.log')
+os.environ['EVENT_LOG_SEVERITY'] = '-300'
+
+ooodoc_coordinates = ('127.0.0.1', 8008)
+
+testrun = (7,)
+
+def shout(msg):
+  msg = str(msg)
+  ZopeTestCase._print('\n ' + msg)
+  LOG('Testing... ', 0, msg)
+
+def unpackData(data):
+  """
+  Unpack Pdata into string
+  """
+  if isinstance(data, str):
+    return data
+  else:
+    data_list = []
+    while data is not None:
+      data_list.append(data.data)
+      data = data.next
+    return ''.join(data_list)
+
+class FileUploadTest(file):
+
+  __allow_access_to_unprotected_subobjects__=1
+
+  def __init__(self, path, name):
+    self.filename = name
+    file.__init__(self, path)
+
+def makeFileUpload(name):
+  path = os.getenv('INSTANCE_HOME') + '/../Products/ERP5OOo/tests/' + name
+  return FileUploadTest(path, name)
+
+class TestIngestion(ERP5TypeTestCase):
+  """
+    ERP5 Document Management System - test file ingestion mechanism
+  """
+
+  # pseudo constants
+  RUN_ALL_TEST = 1
+  QUIET = 0
+
+  ##################################
+  ##  ZopeTestCase Skeleton
+  ##################################
+
+  def getTitle(self):
+    """
+      Return the title of the current test set.
+    """
+    return "ERP5 DMS - ingestion"
+
+  def getBusinessTemplateList(self):
+    """
+      Return the list of required business templates.
+    """
+    return ('erp5_base', 'erp5_trade', 'erp5_project', 'erp5_dms')
+
+  def afterSetUp(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Initialize the ERP5 site.
+    """
+    self.login()
+    self.datetime          = DateTime()
+    self.portal            = self.getPortal()
+    self.portal_categories = self.getCategoryTool()
+    self.portal_catalog    = self.getCatalogTool()
+    self.createCategories()
+    self.createPreferences()
+    self.createTools()
+
+  def createTools(self):
+    """
+      Set up contribution tool and content type registry
+    """
+    # XXX portal_contributions is not created in bootstrap
+    # so we have to create it here
+    try:
+      self.portal._delObject('portal_contributions')
+    except AttributeError:
+      pass
+    addTool = self.portal.manage_addProduct['ERP5'].manage_addTool
+    addTool('ERP5 Contribution Tool', None)
+    # XXX  content_type_registry is not services by business templating mechanism
+    # so it has to be exported and placed in ../../../unit_test/import/ director
+    # we import it here
+    try:
+      self.portal._delObject('content_type_registry')
+    except AttributeError:
+      pass
+    self.portal.manage_importObject(file='content_type_registry.zexp')
+
+  def createPreferences(self):
+    default_pref = self.portal.portal_preferences.default_site_preference
+    default_pref.setPreferredOoodocServerAddress(ooodoc_coordinates[0])
+    default_pref.setPreferredOoodocServerPortNumber(ooodoc_coordinates[1])
+    default_pref.setPreferredDocumentFileNameRegularExpression("(?P<reference>[A-Z]{3,6})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})")
+    default_pref.enable()
+
+
+  ##################################
+  ##  Useful methods
+  ##################################
+
+  def login(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Create a new manager user and login.
+    """
+    user_name = 'bartek'
+    user_folder = self.portal.acl_users
+    user_folder._doAddUser(user_name, '', ['Manager', 'Owner', 'Assignor'], [])
+    user = user_folder.getUserById(user_name).__of__(user_folder)
+    newSecurityManager(None, user)
+
+  def createCategories(self):
+    """
+      Create some categories for testing.
+    """
+    self.category_list = [
+                         # Role categories
+                          {'path' : 'role/internal'
+                           ,'title': 'Internal'
+                           }
+                          ,{'path' : 'function/musician/wind/saxophone'
+                           ,'title': 'Saxophone'
+                           }
+                          ,{'path' : 'group/medium'
+                           ,'title': 'Medium'
+                           }
+                          ,{'path' : 'site/arctic/spitsbergen'
+                           ,'title': 'Spitsbergen'
+                           }
+                         ]
+
+    # Create categories
+    # Note : this code was taken from the CategoryTool_importCategoryFile python
+    #        script (packaged in erp5_core).
+    for category in self.category_list:
+      keys = category.keys()
+      if 'path' in keys:
+        base_path_obj = self.portal_categories
+        is_base_category = True
+        for category_id in category['path'].split('/'):
+          # The current category is not existing
+          if category_id not in base_path_obj.contentIds():
+            # Create the category
+            if is_base_category:
+              category_type = 'Base Category'
+            else:
+              category_type = 'Category'
+            base_path_obj.newContent( portal_type       = category_type
+                                    , id                = category_id
+                                    , immediate_reindex = 1
+                                    )
+          base_path_obj = base_path_obj[category_id]
+          is_base_category = False
+        new_category = base_path_obj
+
+        # Set the category properties
+        for key in keys:
+          if key != 'path':
+            method_id = "set" + convertToUpperCase(key)
+            value = category[key]
+            if value not in ('', None):
+              if hasattr(new_category, method_id):
+                method = getattr(new_category, method_id)
+                method(value.encode('UTF-8'))
+
+  def getCategoryList(self, base_category=None):
+    """
+      Get a list of categories with same base categories.
+    """
+    categories = []
+    if base_category != None:
+      for category in self.category_list:
+        if category["path"].split('/')[0] == base_category:
+          categories.append(category)
+    return categories
+
+  def checkObjectCatalogged(self, portal_type, reference):
+    """
+      make sure this object is already in the catalog
+    """
+    res = self.portal_catalog(portal_type=portal_type, reference=reference)
+    self.assertEquals(len(res), 1)
+    self.assertEquals(res[0].getReference(), reference)
+
+  def createDocument(self, portal_type, id):
+    """
+      create an empty document of given portal type
+      it has id as given and reference like document_[id]
+      immediately catalogged and verified in two ways
+    """
+    dm = self.portal.document_module
+    doc = getattr(dm, id, None)
+    if doc is not None:
+      dm.manage_delObjects([id,])
+    reference =  'document_' + id
+    doc = dm.newContent(portal_type=portal_type, id=id, reference=reference)
+    #doctext._getServerCoordinate = getOoodCoordinate()
+    doc.reindexObject(); get_transaction().commit(); self.tic()
+    self.checkObjectCatalogged(portal_type, reference)
+    self.assert_(hasattr(dm, id))
+
+
+  ##################################
+  ##  Basic steps
+  ##################################
+
+  def stepCheckPreferences(self, sequence=None, sequence_list=None, **kw):
+    """
+      make sure preferences are set up properly and accessible
+    """
+    self.assertEquals(self.portal.portal_preferences.getPreferredOoodocServerAddress(), ooodoc_coordinates[0])
+    self.assertEquals(self.portal.portal_preferences.getPreferredOoodocServerPortNumber(), ooodoc_coordinates[1])
+    self.assertEquals(self.portal.portal_preferences.default_site_preference.getPreferredDocumentFileNameRegularExpression(), "(?P<reference>[A-Z]{3,6})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})")
+
+  def stepCheckContentTypeRegistry(self, sequence=None, sequence_list=None, **kw):
+    """
+      check if we successfully imported registry
+      and that it has all the entries we need
+    """
+    reg = self.portal.content_type_registry
+    correct_type_mapping = {
+            'doc' : 'Text',
+            'txt' : 'Text',
+            'odt' : 'Text',
+            'sxw' : 'Text',
+            'rtf' : 'Text',
+            'gif' : 'Image',
+            'jpg' : 'Image',
+            'png' : 'Image',
+            'bmp' : 'Image',
+            'pdf' : 'PDF',
+            'xls' : 'Spreadsheet',
+            'ods' : 'Spreadsheet',
+            'sdc' : 'Spreadsheet',
+            'ppt' : 'Presentation',
+            'odp' : 'Presentation',
+            'sxi' : 'Presentation',
+            'xxx' : 'File',
+          }
+    for type, portal_type in correct_type_mapping.items():
+      file_name = 'aaa.' + type
+      self.assertEquals(reg.findTypeName(file_name, None, None), portal_type)
+
+  def stepCreatePerson(self, sequence=None, sequence_list=None, **kw):
+    """
+      Create a person.
+    """
+    portal_type = 'Person'
+    reference = 'john_doe'
+    person_module = self.portal.getDefaultModule(portal_type)
+    person = person_module.newContent( portal_type=portal_type
+                                     , id='john'
+                                     ,  reference = reference
+                                     )
+    person.reindexObject(); get_transaction().commit(); self.tic()
+
+
+  def stepCreateTextDocument(self, sequence=None, sequence_list=None, **kw):
+    """
+      create an empty Text document 'one'
+      for further testing
+      (first delete if exists)
+    """
+    self.createDocument('Text', 'one')
+
+  def stepCreateSpreadsheetDocument(self, sequence=None, sequence_list=None, **kw):
+    """
+      create an empty Spreadsheet document 'two'
+      for further testing
+      (first delete if exists)
+    """
+    self.createDocument('Spreadsheet', 'two')
+
+  def stepCreatePresentationDocument(self, sequence=None, sequence_list=None, **kw):
+    """
+      create an empty Presentation document 'three'
+      for further testing
+      (first delete if exists)
+    """
+    self.createDocument('Presentation', 'three')
+
+  def stepCreateDrawingDocument(self, sequence=None, sequence_list=None, **kw):
+    """
+      create an empty Drawing document 'four'
+      for further testing
+      (first delete if exists)
+    """
+    self.createDocument('Drawing', 'four')
+
+  def stepCheckEmptyState(self, sequence=None, sequence_list=None, **kw):
+    """
+      check if the document is in "empty" processing state
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one', None)
+    return self.assertEquals(context.getExternalProcessingState(), 'empty')
+
+  def stepCheckUploadedState(self, sequence=None, sequence_list=None, **kw):
+    """
+      check if the document is in "uploaded" processing state
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one', None)
+    return self.assertEquals(context.getExternalProcessingState(), 'uploaded')
+
+  def stepCheckConvertedState(self, sequence=None, sequence_list=None, **kw):
+    """
+      check if the document is in "converted" processing state
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one', None)
+    return self.assertEquals(context.getExternalProcessingState(), 'converted')
+
+  def stepStraightUpload(self, sequence=None, sequence_list=None, **kw):
+    """
+      Upload a file directly from the form
+      check if it has the data and source_reference
+    """
+    dm = self.portal.document_module
+    doc = getattr(dm, 'one')
+    f = makeFileUpload('TEST-en-002.doc')
+    doc.edit(file=f)
+    self.assert_(doc.hasFile())
+    self.assertEquals(doc.getSourceReference(), 'TEST-en-002.doc')
+    self.assertEquals(doc.getRevision(), '')
+    doc.reindexObject(); get_transaction().commit(); self.tic()
+
+  def stepDialogUpload(self, sequence=None, sequence_list=None, **kw):
+    """
+      upload a file using dialog
+      should increase revision
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    f = makeFileUpload('TEST-en-002.doc')
+    context.Document_uploadFile(file=f)
+    self.assertEquals(context.getRevision(), '001')
+    context.reindexObject(); get_transaction().commit(); self.tic()
+
+  def stepDiscoverFromFilename(self, sequence=None, sequence_list=None, **kw):
+    """
+      upload file using dialog
+      this should trigger metadata discovery and we should have
+      basic coordinates immediately, from first stage
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    f = makeFileUpload('TEST-en-002.doc')
+    context.Document_uploadFile(file=f)
+    self.assertEquals(context.getReference(), 'TEST')
+    self.assertEquals(context.getLanguage(), 'en')
+    self.assertEquals(context.getVersion(), '002')
+
+  def stepCheckConvertedContent(self, sequence=None, sequence_list=None, **kw):
+    """
+      check if the input file was successfully converted
+      and that it includes what it should
+    """
+    self.tic()
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    self.assert_(context.hasOOFile())
+    self.assert_('magic' in context.SearchableText())
+
+  def stepSetDiscoveryScripts(self, sequence=None, sequence_list=None, **kw):
+    """
+      Create Text_getPropertyDictFrom[source] scripts
+      to simulate custom site's configuration
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    script_id = 'Text_getPropertyDictFromUserLogin'
+    factory = context.manage_addProduct['PythonScripts'].manage_addPythonScript
+    factory(id=script_id)
+    script = getattr(context, script_id)
+    script.ZPythonScript_edit('user_name=None',"return {'contributor':'person_module/john'}")
+    script_id = 'Text_getPropertyDictFromContent'
+    factory(id=script_id)
+    script = getattr(context, script_id)
+    script.ZPythonScript_edit('', "return {'short_title':'short'}")
+    result = context.Text_getPropertyDictFromContent()
+
+  def stepTestMetadataSetting(self, sequence=None, sequence_list=None, **kw):
+    """
+      Upload with custom getPropertyDict methods
+      check that all metadata are correct
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    f = makeFileUpload('TEST-en-002.doc')
+    context.Document_uploadFile(file=f)
+    get_transaction().commit()
+    self.tic()
+    # reference from filename (the rest was checked some other place)
+    self.assertEquals(context.getReference(), 'TEST')
+    # short_title from content
+    self.assertEquals(context.getShortTitle(), 'short')
+    # contributors from user
+    self.assertEquals(context.getContributor(), 'person_module/john')
+    # title from metadata inside the doc
+    self.assertEquals(context.getTitle(), 'title')
+
+  def stepEditMetadata(self, sequence=None, sequence_list=None, **kw):
+    """
+      we change metadata in a doc which has ODF
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    kw = dict(title='another title',
+              subject='another subject',
+              description='another description')
+    context.editMetadata(kw)
+    # context.edit(**kw) - this works from UI but not from here - is there a problem somewhere?
+    context.reindexObject(); get_transaction().commit();
+    self.tic(); self.tic();
+
+  def stepCheckChangedMetadata(self, sequence=None, sequence_list=None, **kw):
+    """
+      then we download it and check if it is changed
+    """
+    # XXX actually this is an example of how it should be
+    # implemented in OOoDocument class - we don't really
+    # need oood for getting/setting metadata...
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    newcontent = context.getOOFile()
+    cs = cStringIO.StringIO()
+    cs.write(unpackData(newcontent))
+    z = zipfile.ZipFile(cs)
+    s = z.read('meta.xml')
+    xmlob = parseString(s)
+    title = xmlob.getElementsByTagName('dc:title')[0].childNodes[0].data
+    self.assertEquals(title, u'another title')
+    subject = xmlob.getElementsByTagName('dc:subject')[0].childNodes[0].data
+    self.assertEquals(subject, u'another subject')
+    description = xmlob.getElementsByTagName('dc:description')[0].childNodes[0].data
+    self.assertEquals(description, u'another description')
+    
+  def ingestFormats(self, doc_id, formats_from):
+    """
+      method for bulk ingesting files of various formats
+      we take them one by one based on naming convention
+      ingest, convert
+      check that a magic word is in every of them
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, doc_id)
+    for rev, format in enumerate(formats_from):
+      filename = 'TEST-en-002.' + format
+      f = makeFileUpload(filename)
+      context.edit(file=f)
+      context.convertToBase()
+      context.reindexObject(); get_transaction().commit(); self.tic()
+      self.assert_('magic' in context.SearchableText())
+
+  def stepIngestTextFormats(self, sequence=None, sequence_list=None, **kw):
+    """
+      ingest all supported text formats
+      make sure they are converted
+    """
+    formats_from = ['rtf', 'doc', 'txt', 'sxw', 'sdw']
+    self.ingestFormats('one', formats_from)
+
+  def stepIngestSpreadsheetFormats(self, sequence=None, sequence_list=None, **kw):
+    """
+      ingest all supported spreadsheet formats
+      make sure they are converted
+    """
+    formats_from = ['xls', 'sxc', 'sdc']
+    self.ingestFormats('two', formats_from)
+
+  def stepIngestPresentationFormats(self, sequence=None, sequence_list=None, **kw):
+    """
+      ingest all supported presentation formats
+      make sure they are converted
+    """
+    formats_from = ['ppt', 'sxi', 'sdd']
+    self.ingestFormats('three', formats_from)
+
+  def stepIngestDrawingFormats(self, sequence=None, sequence_list=None, **kw):
+    """
+      ingest all supported presentation formats
+      make sure they are converted
+    """
+    formats_from = ['sxd', 'sda']
+    self.ingestFormats('four', formats_from)
+
+  def checkDocumentExportList(self, doc_id, format, targets):
+    """
+      given the docs id
+      make sure targets are in
+      the objects target format list
+    """
+    dm = self.portal.document_module
+    context = getattr(dm, doc_id)
+    filename = 'TEST-en-002.' + format
+    f = makeFileUpload(filename)
+    context.edit(file=f)
+    context.convertToBase()
+    context.reindexObject(); get_transaction().commit(); self.tic()
+    clearCache()
+    target_list = [x[1] for x in context.getTargetFormatItemList()]
+    for target in targets:
+      self.assert_(target in target_list)
+
+  def stepCheckTextDocumentExportList(self, sequence=None, sequence_list=None, **kw):
+    self.checkDocumentExportList('one', 'doc', ['pdf', 'doc', 'rtf', 'html-writer', 'txt'])
+
+  def stepCheckSpreadsheetDocumentExportList(self, sequence=None, sequence_list=None, **kw):
+    self.checkDocumentExportList('two', 'xls', ['csv', 'html-calc', 'xls', 'calc.pdf'])
+
+  def stepCheckPresentationDocumentExportList(self, sequence=None, sequence_list=None, **kw):
+    self.checkDocumentExportList('three', 'ppt', ['impr.pdf', 'ppt'])
+
+  def stepCheckDrawingDocumentExportList(self, sequence=None, sequence_list=None, **kw):
+    self.checkDocumentExportList('four', 'sxd', ['jpg', 'draw.pdf', 'svg'])
+
+  def stepCheckHasSnapshot(self, sequence=None, sequence_list=None, **kw):
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    self.failUnless(context.hasSnapshot())
+
+  def stepCheckHasNoSnapshot(self, sequence=None, sequence_list=None, **kw):
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    self.failIf(context.hasSnapshot())
+
+  def stepCreateSnapshot(self, sequence=None, sequence_list=None, **kw):
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    context.createSnapshot()
+
+  def stepTryRecreateSnapshot(self, sequence=None, sequence_list=None, **kw):
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    # XXX this always fails, don't know why
+    #self.assertRaises(ConversionError, context.createSnapshot)
+
+  def stepDeleteSnapshot(self, sequence=None, sequence_list=None, **kw):
+    dm = self.portal.document_module
+    context = getattr(dm, 'one')
+    context.deleteSnapshot()
+
+    
+
+  ##################################
+  ##  Tests
+  ##################################
+
+  def test_01_checkBasics(self, quiet=QUIET, run=RUN_ALL_TEST):
+    if testrun and 1 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_01_checkBasics')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCheckPreferences'
+                 ,'stepCheckContentTypeRegistry'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_02_TextDoc(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Test basic behaviour of a document:
+      - create empty doc
+      - upload a file directly
+      - upload a file using upload dialog
+      - make sure revision was increased
+      - check that it was properly converted
+      - check if coordinates were extracted from file name
+    """
+    if testrun and 2 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_02_TextDoc')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepCheckEmptyState'
+                 ,'stepStraightUpload'
+                 ,'stepCheckConvertedState'
+                 ,'stepDialogUpload'
+                 ,'stepCheckConvertedState'
+                 ,'stepDiscoverFromFilename'
+                 ,'stepCheckConvertedContent'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_03_MetadataExtraction(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Test metadata extraction from various sources:
+      - from filename (doublecheck)
+      - from user (by overwriting type-based method)
+      - from content (same way)
+      - from file metadata
+      We try to verity that all this works
+      (order will be tested later)
+      
+      XXX Metadata of document (title, subject, description)
+      are retrieved and set upon conversion, and they
+      are not taken into account in the procedure
+      so they overwrite what was set before content and
+      are overwritten by what was after
+      XXX why do we use keywords to set subject_list???
+    """
+    if testrun and 3 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_03_MetadataExtraction')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepSetDiscoveryScripts'
+                 ,'stepTestMetadataSetting'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_04_MetadataEditing(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Check metadata in the object and in the ODF document
+      Edit metadata on the object
+      Download ODF, make sure it is changed
+    """
+    if testrun and 4 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_04_MetadataEditing')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepDialogUpload'
+                 ,'stepEditMetadata'
+                 ,'stepCheckChangedMetadata'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_05_FormatIngestion(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Ingest various formats (xls, doc, sxi, ppt etc)
+      Verify that they are successfully converted
+      - have ODF data and contain magic word in SearchableText
+    """
+    if testrun and 5 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_05_FormatIngestion')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepIngestTextFormats'
+                 ,'stepCreateSpreadsheetDocument'
+                 ,'stepIngestSpreadsheetFormats'
+                 ,'stepCreatePresentationDocument'
+                 ,'stepIngestPresentationFormats'
+                 ,'stepCreateDrawingDocument'
+                 ,'stepIngestDrawingFormats'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_06_FormatGeneration(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Test generationof files in all possible formats
+      (do we need to test it here? it is tested
+      in oood tests...)
+      - at least check if they have correct lists of available formats for export
+    """
+    if testrun and 6 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_06_FormatGeneration')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepCheckTextDocumentExportList'
+                 ,'stepCreateSpreadsheetDocument'
+                 ,'stepCheckSpreadsheetDocumentExportList'
+                 ,'stepCreatePresentationDocument'
+                 ,'stepCheckPresentationDocumentExportList'
+                 ,'stepCreateDrawingDocument'
+                 ,'stepCheckDrawingDocumentExportList'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+  def test_07_SnapshotGeneration(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Generate snapshot, make sure it is there, 
+      try to generate it again, remove and 
+      generate once more
+    """
+    if testrun and 7 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_07_SnapshotGeneration')
+    sequence_list = SequenceList()
+    step_list = [ 'stepCreateTextDocument'
+                 ,'stepDialogUpload'
+                 ,'stepCheckHasNoSnapshot'
+                 ,'stepCreateSnapshot'
+                 ,'stepTryRecreateSnapshot'
+                 ,'stepCheckHasSnapshot'
+                 ,'stepDeleteSnapshot'
+                 ,'stepCheckHasNoSnapshot'
+                 ,'stepCreateSnapshot'
+                ]
+    sequence_string = ' '.join(step_list)
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
+
+  def test_08_Cache(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      I don't know how to verify how cache works - the only
+      think I know how to check is change file contents and 
+      make sure new version is served
+    """
+
+  def test_09_Contribute(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Create content through portal_contributions
+      - use newContent to ingest various types 
+        also to test content_type_registry setup
+      - verify that
+        - appropriate portal_types were created
+        - the files were converted
+        - metadata was read
+    """
+    if testrun and 8 not in testrun:return
+    if not run: return
+    if not quiet: shout('test_09_Contribute')
+
+  def test_10_MetadataSettingPreferenceOrder(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Create a doc, try to set the same metadata from different sources
+      check that the right ones remained
+      change preference order, check again
+    """
+
+
+if __name__ == '__main__':
+  framework()
+else:
+  import unittest
+  def test_suite():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(TestIngestion))
+    return suite
+
+
+# vim: filetype=python syntax=python shiftwidth=2 

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.rtf
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.rtf?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.rtf (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.rtf Thu Apr  5 09:34:37 2007
@@ -1,0 +1,86 @@
+{\rtf1\ansi\deff1\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset238 DejaVu Serif;}{\f1\froman\fprq2\fcharset238 Luxi Serif;}{\f2\fswiss\fprq2\fcharset0 Bitstream Vera Sans;}{\f3\froman\fprq2\fcharset0 Bitstream Vera Serif;}{\f4\fnil\fprq2\fcharset238 DejaVu Sans;}{\f5\fnil\fprq2\fcharset0 Mincho{\*\falt msmincho};}{\f6\fnil\fprq2\fcharset0 Bitstream Vera Sans;}{\f7\fnil\fprq2\fcharset238 Lucidasans;}{\f8\fnil\fprq0\fcharset0 Tahoma;}{\f9\fnil\fprq0\fcharset0 Lucidasans;}{\f10\fnil\fprq2\fcharset0 Tahoma;}}
+{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
+{\stylesheet{\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057\snext1 Normal;}
+{\s2\sb240\sa120\keepn\ql\rtlch\af10\afs28\lang1033\ltrch\dbch\af5\langfe1033\hich\f2\fs28\lang2057\loch\f2\fs28\lang2057\sbasedon1\snext3 Heading;}
+{\s3\sa120\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057\sbasedon1\snext3 Body Text;}
+{\s4\sa120\ql\rtlch\af8\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057\sbasedon3\snext4 List;}
+{\s5\sb120\sa120\ql\rtlch\af8\afs24\lang1033\ai\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\i\loch\f3\fs24\lang2057\i\sbasedon1\snext5 caption;}
+{\s6\ql\rtlch\af8\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057\sbasedon1\snext6 Index;}
+{\s7\sb120\sa120\ql\rtlch\af9\afs20\lang1033\ai\ltrch\dbch\af6\langfe1033\hich\f3\fs20\lang2057\i\loch\f3\fs20\lang2057\i\sbasedon1\snext7 Podpis;}
+{\s8\ql\rtlch\af9\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057\sbasedon1\snext8 Indeks;}
+{\*\cs10\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 Absatz-Standardschriftart;}
+{\*\cs11\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart;}
+{\*\cs12\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1;}
+{\*\cs13\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11;}
+{\*\cs14\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111;}
+{\*\cs15\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111;}
+{\*\cs16\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111;}
+{\*\cs17\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111;}
+{\*\cs18\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111;}
+{\*\cs19\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111;}
+{\*\cs20\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111;}
+{\*\cs21\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111;}
+{\*\cs22\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111;}
+{\*\cs23\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111;}
+{\*\cs24\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111;}
+{\*\cs25\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111;}
+{\*\cs26\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111;}
+{\*\cs27\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111;}
+{\*\cs28\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111;}
+{\*\cs29\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111;}
+{\*\cs30\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111;}
+{\*\cs31\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111;}
+{\*\cs32\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111;}
+{\*\cs33\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111;}
+{\*\cs34\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111;}
+{\*\cs35\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111;}
+{\*\cs36\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111;}
+{\*\cs37\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111;}
+{\*\cs38\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111;}
+{\*\cs39\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111;}
+{\*\cs40\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111;}
+{\*\cs41\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111;}
+{\*\cs42\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111;}
+{\*\cs43\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111;}
+{\*\cs44\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111;}
+{\*\cs45\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111;}
+{\*\cs46\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111;}
+{\*\cs47\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111;}
+{\*\cs48\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111;}
+{\*\cs49\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111;}
+{\*\cs50\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111;}
+{\*\cs51\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111;}
+{\*\cs52\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111;}
+{\*\cs53\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111;}
+{\*\cs54\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111;}
+{\*\cs55\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111111;}
+{\*\cs56\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111111;}
+{\*\cs57\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111111;}
+{\*\cs58\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111111111;}
+{\*\cs59\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111111111;}
+{\*\cs60\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111111111;}
+{\*\cs61\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111111111111;}
+{\*\cs62\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111111111111;}
+{\*\cs63\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111111111111;}
+{\*\cs64\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111111111111111;}
+{\*\cs65\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111111111111111;}
+{\*\cs66\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111111111111111;}
+{\*\cs67\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart11111111111111111111111111111111111111111111111111111111;}
+{\*\cs68\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart111111111111111111111111111111111111111111111111111111111;}
+{\*\cs69\cf0\rtlch\af7\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045 WW-Absatz-Standardschriftart1111111111111111111111111111111111111111111111111111111111;}
+}
+{\info{\title title}{\subject subject}{\keywords keywords}{\doccomm comments}{\author user_0}{\creatim\yr2006\mo5\dy9\hr19\min30}{\revtim\yr1601\mo1\dy1\hr1\min6}{\printim\yr2113\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
+{\*\pgdscno0}\paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+\pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 {\rtlch \ltrch\loch\f3\fs24\lang2057\i0\b0 This is a very interesting document.}
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 {\rtlch \ltrch\loch\f3\fs24\lang2057\i0\b0 It contains something special, namely a magic keyword.}
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 {\rtlch \ltrch\loch\f3\fs24\lang2057\i0\b0 It also has an embedded meta information:}
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 {\rtlch \ltrch\loch\f3\fs24\lang2057\i0\b0 function:musician/wind/saxophone}
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 
+\par \pard\plain \ltrpar\s1\ql\rtlch\af10\afs24\lang1033\ltrch\dbch\af6\langfe1033\hich\f3\fs24\lang2057\loch\f3\fs24\lang2057 
+\par }

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sda
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sda?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sda
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdc
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdc?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdd
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdd?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdw
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdw?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sdw
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxc
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxc?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxd
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxd?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxi
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxi?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxi
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxw
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxw?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.sxw
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt Thu Apr  5 09:34:37 2007
@@ -1,0 +1,3 @@
+This is a very interesting document. It contains something special, namely a magic keyword. It also has an embedded meta information: function:musician/wind/saxophone
+
+

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.xls
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.xls?rev=13958&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002.xls
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002_ind.html
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002_ind.html?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002_ind.html (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002_ind.html Thu Apr  5 09:34:37 2007
@@ -1,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML>
+<HEAD>
+<TITLE></TITLE>
+</HEAD>
+<BODY>
+<A href="TEST-en-002s.html#1" target="contents" >Page 1</a><br>
+</BODY>
+</HTML>

Added: erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002s.html
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002s.html?rev=13958&view=auto
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002s.html (added)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/TEST-en-002s.html Thu Apr  5 09:34:37 2007
@@ -1,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML>
+<HEAD>
+<TITLE></TITLE>
+</HEAD>
+<BODY>
+<A name=1></a>This is a very interesting document.<br>
+It contains something special, namely a magic keyword.<br>
+It also has an embedded meta information:<br>
+function:musician/wind/saxophone<br>
+<hr>
+</BODY>
+</HTML>




More information about the Erp5-report mailing list