From 4272fc10d6fb2bdcad22e0a9b3e61d1fc25796fe Mon Sep 17 00:00:00 2001 From: fernando Date: Mon, 3 Feb 2014 20:54:36 +0100 Subject: [PATCH] =?UTF-8?q?Changeset:=20156=20-=20Arreglo=20bug=20PageFram?= =?UTF-8?q?e=20(error=20ActivePage)=20/=20Nuevo=20test=20unitario=20para?= =?UTF-8?q?=20comprobar=20la=20soluci=C3=B3n=20-=20Par=C3=A1mero=20cNoTime?= =?UTF-8?q?stamps=3D'1'=20agregado=20a=20scripts=20de=20conversi=C3=B3n=20?= =?UTF-8?q?batch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Convert_VFP9_BIN_2_PRG.vbs | 27 ++++- Convert_VFP9_PRG_2_BIN.vbs | 25 ++++- TESTS/DATOS_READONLY/fb2p_frm_2.sc2 | 67 +++++++++-- TESTS/DATOS_READONLY/fb2p_frm_2.sct | Bin 3919 -> 5002 bytes TESTS/DATOS_READONLY/fb2p_frm_2.scx | Bin 1578 -> 1796 bytes TESTS/ut__foxbin2prg.prg | 167 +++++++++++++++++++++++++++- foxbin2prg.pj2 | 4 +- foxbin2prg.pjt | Bin 341760 -> 342016 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 27 +++-- 10 files changed, 288 insertions(+), 29 deletions(-) diff --git a/Convert_VFP9_BIN_2_PRG.vbs b/Convert_VFP9_BIN_2_PRG.vbs index 3bd943b..6a6fde3 100644 --- a/Convert_VFP9_BIN_2_PRG.vbs +++ b/Convert_VFP9_BIN_2_PRG.vbs @@ -14,7 +14,7 @@ Const ForReading = 1 Dim WSHShell, FileSystemObject Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg, aFiles(), nFile_Count -Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile +Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") @@ -22,7 +22,14 @@ foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg nExitCode = 0 cConvertType = "BIN2PRG" '<<< This is the only difference between the 2 scripts '--------------------------------------------------------------------------------------------------- -nDebug = 1+0+4+0 'Cumulative Flags: 0=OFF, 1=Create FoxBin2prg LOG, 2=Only show script calls, 4=Don't show FoxBin2prg error modal messages, 8=Show end of process message +'Cumulative Flags: +' 0=OFF +' 1=Create FoxBin2prg LOG +' 2=Only show script calls (for testing without executing) +' 4=Don't show FoxBin2prg error modal messages +' 8=Show end of process message +' 16=Empty timestamps +nDebug = 1+0+4+0+16 '--------------------------------------------------------------------------------------------------- If cConvertType = "BIN2PRG" Then @@ -87,6 +94,9 @@ If WScript.Arguments.Count = 0 Then If GetBit(nDebug, 4) Then cErrMsg = cErrMsg & Chr(13) & "Bit 3 ON: (8) Show End of Process message" End If + If GetBit(nDebug, 5) Then + cErrMsg = cErrMsg & Chr(13) & "Bit 4 ON: (16) Empty timestamps" + End If MsgBox cErrMsg, 64, "No parameters - Debug Status" Else cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") @@ -103,7 +113,7 @@ Else cFlagGenerateLog = "'0'" cFlagDontShowErrMsg = "'0'" cFlagShowCall = "'0'" - cFlagRecompile = "'0'" + cFlagRecompile = "'1'" If GetBit(nDebug, 1) Then cFlagGenerateLog = "'1'" @@ -114,21 +124,26 @@ Else If GetBit(nDebug, 3) Then cFlagDontShowErrMsg = "'1'" End If - + If GetBit(nDebug, 5) Then + cNoTimestamps = "'1'" + End If + oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nMAX_VALUE = " & nFile_Count ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & 0 ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) + 'oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.SHOW()" ) For i = 1 To nFile_Count oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.lbl_TAREA.CAPTION = 'Procesando " & aFiles(i) & "...'" ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & i ) + cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'" If nDebug = 0 Or nDebug = 2 Then cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "' )" Else cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "','0','0','0'," _ - & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," & cFlagRecompile & " )" + & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _ + & cFlagRecompile & "," & cNoTimestamps & " )" End If If cFlagJustShowCall = "1" Then MsgBox cCMD, 64, "PARAMETROS ENVIADOS" diff --git a/Convert_VFP9_PRG_2_BIN.vbs b/Convert_VFP9_PRG_2_BIN.vbs index 7fe5f47..cd518eb 100644 --- a/Convert_VFP9_PRG_2_BIN.vbs +++ b/Convert_VFP9_PRG_2_BIN.vbs @@ -14,7 +14,7 @@ Const ForReading = 1 Dim WSHShell, FileSystemObject Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg, aFiles(), nFile_Count -Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile +Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") @@ -22,7 +22,14 @@ foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg nExitCode = 0 cConvertType = "PRG2BIN" '<<< This is the only difference between the 2 scripts '--------------------------------------------------------------------------------------------------- -nDebug = 1+0+4+0 'Cumulative Flags: 0=OFF, 1=Create FoxBin2prg LOG, 2=Only show script calls, 4=Don't show FoxBin2prg error modal messages, 8=Show end of process message +'Cumulative Flags: +' 0=OFF +' 1=Create FoxBin2prg LOG +' 2=Only show script calls (for testing without executing) +' 4=Don't show FoxBin2prg error modal messages +' 8=Show end of process message +' 16=Empty timestamps +nDebug = 1+0+4+0+16 '--------------------------------------------------------------------------------------------------- If cConvertType = "BIN2PRG" Then @@ -87,6 +94,9 @@ If WScript.Arguments.Count = 0 Then If GetBit(nDebug, 4) Then cErrMsg = cErrMsg & Chr(13) & "Bit 3 ON: (8) Show End of Process message" End If + If GetBit(nDebug, 5) Then + cErrMsg = cErrMsg & Chr(13) & "Bit 4 ON: (16) Empty timestamps" + End If MsgBox cErrMsg, 64, "No parameters - Debug Status" Else cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") @@ -103,7 +113,7 @@ Else cFlagGenerateLog = "'0'" cFlagDontShowErrMsg = "'0'" cFlagShowCall = "'0'" - cFlagRecompile = "'0'" + cFlagRecompile = "'1'" If GetBit(nDebug, 1) Then cFlagGenerateLog = "'1'" @@ -114,21 +124,26 @@ Else If GetBit(nDebug, 3) Then cFlagDontShowErrMsg = "'1'" End If + If GetBit(nDebug, 5) Then + cNoTimestamps = "'1'" + End If oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nMAX_VALUE = " & nFile_Count ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & 0 ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) + 'oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.SHOW()" ) For i = 1 To nFile_Count oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.lbl_TAREA.CAPTION = 'Procesando " & aFiles(i) & "...'" ) oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & i ) + cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'" If nDebug = 0 Or nDebug = 2 Then cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "' )" Else cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "','0','0','0'," _ - & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," & cFlagRecompile & " )" + & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _ + & cFlagRecompile & "," & cNoTimestamps & " )" End If If cFlagJustShowCall = "1" Then MsgBox cCMD, 64, "PARAMETROS ENVIADOS" diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.sc2 b/TESTS/DATOS_READONLY/fb2p_frm_2.sc2 index 4beaa79..9894332 100644 --- a/TESTS/DATOS_READONLY/fb2p_frm_2.sc2 +++ b/TESTS/DATOS_READONLY/fb2p_frm_2.sc2 @@ -2,7 +2,7 @@ * (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.19" SourceFile="C:\DESA\foxbin2prg\TESTS\DATOS_READONLY\fb2p_frm_2.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +*< FOXBIN2PRG: Version="1.19" SourceFile="C:\DESA\foxbin2prg\TESTS\DATOS_READONLY\FB2P_FRM_2.SCX" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * * DEFINE CLASS Dataenvironment AS dataenvironment @@ -17,7 +17,7 @@ DEFINE CLASS Dataenvironment AS dataenvironment ENDDEFINE DEFINE CLASS Form1 AS form - *< CLASSDATA: Baseclass="form" Timestamp="2013/12/15 18:41:14" Scale="" Uniqueid="_3XW0B26O1" /> + *< CLASSDATA: Baseclass="form" Timestamp="2014/02/03 19:55:29" Scale="" Uniqueid="_3XW0B26O1" /> * *p: a_otra *a: ^a_prop[1,0] && array @@ -109,12 +109,12 @@ DEFINE CLASS Form1 AS form _prop = .F. ADD OBJECT 'Commandgroup1' AS commandgroup WITH ; - ButtonCount = 2, ; - Height = 66, ; + ButtonCount = 3, ; + Height = 100, ; Left = 12, ; Name = "Commandgroup1", ; Top = 8, ; - Value = 1, ; + Value = 2, ; Width = 94, ; Command1.Caption = "Command1", ; Command1.Height = 27, ; @@ -170,7 +170,60 @@ DEFINE CLASS Form1 AS form Command2.Visible = .T., ; Command2.WhatsThisHelpID = -1, ; Command2.Width = 84, ; - Command2.WordWrap = .F. - *< END OBJECT: BaseClass="commandgroup" UniqueID="_3Y813WLQU" Timestamp="2013/12/15 18:41:14" ZOrder="400" /> + Command2.WordWrap = .F., ; + Command3.Caption = "Command3", ; + Command3.Height = 27, ; + Command3.Left = 5, ; + Command3.Name = "Command3", ; + Command3.Top = 63, ; + Command3.Width = 84 + *< END OBJECT: BaseClass="commandgroup" UniqueID="_3Y813WLQU" Timestamp="2014/02/03 19:55:29" ZOrder="400" /> + + ADD OBJECT 'Optiongroup1' AS optiongroup WITH ; + ButtonCount = 3, ; + Height = 68, ; + Left = 20, ; + Name = "Optiongroup1", ; + Top = 144, ; + Value = 2, ; + Width = 71, ; + Option1.Caption = "Option1", ; + Option1.Height = 17, ; + Option1.Left = 5, ; + Option1.Name = "Option1", ; + Option1.Top = 5, ; + Option1.Value = 0, ; + Option1.Width = 61, ; + Option2.Caption = "Option2", ; + Option2.Height = 17, ; + Option2.Left = 5, ; + Option2.Name = "Option2", ; + Option2.Top = 24, ; + Option2.Value = 1, ; + Option2.Width = 61, ; + Option3.Caption = "Option3", ; + Option3.Height = 17, ; + Option3.Left = 5, ; + Option3.Name = "Option3", ; + Option3.Top = 43, ; + Option3.Width = 61 + *< END OBJECT: BaseClass="optiongroup" UniqueID="_3ZO00KYM8" Timestamp="2014/02/03 19:55:29" ZOrder="600" /> + + ADD OBJECT 'Pageframe1' AS pageframe WITH ; + ActivePage = 2, ; + ErasePage = .T., ; + Height = 132, ; + Left = 120, ; + Name = "Pageframe1", ; + PageCount = 3, ; + Top = 12, ; + Width = 245, ; + Page1.Caption = "Page1", ; + Page1.Name = "Page1", ; + Page2.Caption = "Page2", ; + Page2.Name = "Page2", ; + Page3.Caption = "Page3", ; + Page3.Name = "Page3" + *< END OBJECT: BaseClass="pageframe" UniqueID="_3ZO00KYM7" Timestamp="2014/02/03 19:55:29" ZOrder="500" /> ENDDEFINE diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.sct b/TESTS/DATOS_READONLY/fb2p_frm_2.sct index 6a6564f7b3d29cdda1daa732792fcaf6a6f67135..7523192a9dafcab1f3e09f2597a84ef81b52ba5e 100644 GIT binary patch delta 1151 zcmZ`&%}&BV5MCfesW!$CZ^jTV=w-w1B5?7b#Giu^4@A$6l%GV}rWUWgb2B`N;X!-^ zU%~hU&bB+txZ`C8W9_gcLpxe+wVA%Boa6-Z@)d&7;Wodj8yt zY8N$OTTjmG+=X9mTX*hsJdrSKHdnWm?=tQAvzg-!1s(VS;BDY%(7ij7+;a^rf2^Ze z(C6tenn0x6(jnS&f@tb{0M{`?-3UK8GbzH1N$v1e0%z=wLWpkztVd)pLgM67`Nj`t zaFT~Y={j`YTuFiobU^Lof?>hsOEi5)0{D k{WDfAjmqa&fB%UP8zOMuTd?nVanl?x%uF)u8f;FbB_;WJ&iSQzB?`6*M!Z~Mi8-aI bK&Bxtmq%)5dIm_?%xtp<=Y7`6iNcxy$|@7( diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.scx b/TESTS/DATOS_READONLY/fb2p_frm_2.scx index b96bca49f515386d9b7a00967e7279c9544b355a..74aad0153f3a9bfde9a3b3d32524a65cac862952 100644 GIT binary patch delta 151 zcmZ3*)56DUz{kYQzLE743x|oRk%f`5f#Kx;EU5@i4r}1#09G!ID1QS3??_*BLqnLl z&HM~ta0EzS1>)yG{DprqBeT_He^zdo1`C9S{{j#VLV^qosz7WB#BPFM4SQG(nG%IT HOhzdH81Nrw delta 53 zcmZqSTgAg_z{|tWx{>u03x~0>iG{JTp~2+;EU5@i4r}1#>1+l}YW$NKnXMS509#ND AYybcN diff --git a/TESTS/ut__foxbin2prg.prg b/TESTS/ut__foxbin2prg.prg index 5ff7d49..302baec 100644 --- a/TESTS/ut__foxbin2prg.prg +++ b/TESTS/ut__foxbin2prg.prg @@ -413,7 +413,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg ******************************************************************************************************************************************* - FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm_FB2P_SCX_YValidarLosCamposDelRegistro + FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm_FB2P_FRM_1_SCX_YValidarLosCamposDelRegistro LOCAL lnCodError, lnCodError_Esperado ; , lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ; , loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ; @@ -492,6 +492,171 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg ENDFUNC + ******************************************************************************************************************************************* + FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm_FB2P_FRM_2_SCX_YValidarElOrdenDeLasPropsDelObjeto_PageFrame1 + LOCAL lnCodError, lnCodError_Esperado ; + , lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ; + , laProps(1), lcProp, I, laProps_Esperado(1) ; + , loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ; + , loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ; + , loEx AS EXCEPTION + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + + TRY + loEx = NULL + loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG") + *loCnv.l_Debug = .F. + loCnv.l_ShowErrors = .F. + *loCnv.l_Test = .T. + + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lc_File = 'FB2P_FRM_2.SCX' + lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) + lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) + lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + + oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) + + loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) + loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + + SELECT 0 + USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN + + LOCATE FOR ObjName = 'Pageframe1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8) + + this.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Pageframe1" que se iba a testear' ) + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + SCATTER FIELDS Properties MEMO NAME loReg + DIMENSION laProps_Esperado(8) + laProps_Esperado( 1) = 'ErasePage' + laProps_Esperado( 2) = 'PageCount' + laProps_Esperado( 3) = 'ActivePage' + laProps_Esperado( 4) = 'Top' + laProps_Esperado( 5) = 'Left' + laProps_Esperado( 6) = 'Height' + laProps_Esperado( 7) = 'Width' + laProps_Esperado( 8) = 'Name' + + *-- TEST + =ALINES(laProps, loReg.Properties) + + this.messageout( 'Línea : Valor esperado => Valor actual' ) + this.messageout( REPLICATE('-',50) ) + + FOR I = 1 TO ALEN(laProps_Esperado) + lcProp = GETWORDNUM(laProps(I),1) + this.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp ) + ENDFOR + + FOR I = 1 TO ALEN(laProps_Esperado) + lcProp = GETWORDNUM(laProps(I),1) + this.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' ) + ENDFOR + + *USE IN (SELECT("TABLABIN")) + + *THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ; + , loReg_Esperado, loReg, lcTipoBinario ) + + CATCH TO loEx + THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado ) + + FINALLY + USE IN (SELECT("TABLABIN")) + ENDTRY + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm_FB2P_FRM_2_SCX_YValidarElOrdenDeLasPropsDelObjeto_Optiongroup1 + LOCAL lnCodError, lnCodError_Esperado ; + , lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ; + , laProps(1), lcProp, I, laProps_Esperado(1) ; + , loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ; + , loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ; + , loEx AS EXCEPTION + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + + TRY + loEx = NULL + loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG") + *loCnv.l_Debug = .F. + loCnv.l_ShowErrors = .F. + *loCnv.l_Test = .T. + + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + lc_File = 'FB2P_FRM_2.SCX' + lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) + lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) + lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + + oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) + + loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) + loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + + SELECT 0 + USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN + + LOCATE FOR ObjName = 'Optiongroup1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8) + + this.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Optiongroup1" que se iba a testear' ) + + *-- DATOS ESPERADOS + STORE 0 TO lnCodError_Esperado + SCATTER FIELDS Properties MEMO NAME loReg + DIMENSION laProps_Esperado(7) + laProps_Esperado( 1) = 'ButtonCount' + laProps_Esperado( 2) = 'Value' + laProps_Esperado( 3) = 'Top' + laProps_Esperado( 4) = 'Left' + laProps_Esperado( 5) = 'Height' + laProps_Esperado( 6) = 'Width' + laProps_Esperado( 7) = 'Name' + + *-- TEST + =ALINES(laProps, loReg.Properties) + + this.messageout( 'Línea : Valor esperado => Valor actual' ) + this.messageout( REPLICATE('-',50) ) + + FOR I = 1 TO ALEN(laProps_Esperado) + lcProp = GETWORDNUM(laProps(I),1) + this.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp ) + ENDFOR + + FOR I = 1 TO ALEN(laProps_Esperado) + lcProp = GETWORDNUM(laProps(I),1) + this.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' ) + ENDFOR + + *USE IN (SELECT("TABLABIN")) + + *THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ; + , loReg_Esperado, loReg, lcTipoBinario ) + + CATCH TO loEx + THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado ) + + FINALLY + USE IN (SELECT("TABLABIN")) + ENDTRY + + ENDFUNC + + ******************************************************************************************************************************************* FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaLibreria_FB2P_TEST_VCX_YValidarLosCamposDelRegistro LOCAL lnCodError, lnCodError_Esperado ; diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 0c6eca2..5f829f6 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 226" +_Revision = " 230" _LanguageID = "1034" _AutoIncrement = "1" * @@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145212368" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145283887" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index b05d3d260453169ecfc6f5fd62f1ea8c0963b0bf..7812e03d491a4975167ff799d2b348bbdd4463ec 100644 GIT binary patch delta 12459 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 delta 33 ncmZ3_vz~{=fRBl3Bg;+}Rzo9WbA!o;SpI`pW)_o=v1S4Qk`D=4 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 0688a03..c389fa2 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -69,6 +69,7 @@ * 26/01/2014 FDBOZZO v1.19.5 Agregado soporte multiidioma y traducción al Inglés * 01/02/2014 FDBOZZO v1.19.6 Agregada compatibilidad con SourceSafe para Diff y Merge * 02/02/2014 FDBOZZO v1.19.7 Encapsulación de objetos OLE en el propio control o clase // Blocksize ajustado +* 03/02/2014 FDBOZZO v1.19.8 Arreglo bug pageframe (error activePage) * * *--------------------------------------------------------------------------------------------------- @@ -109,6 +110,7 @@ * se hace desde el directorio del archivo, con lo que las referencias relativas pueden * generar errores de compilación, típicamente los #include. * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar +* tcNoTimestamps (v? IN ) '1' para mantener los timestamps vacíos. Útil para minimizar diferencias en Diff/Merge por este motivo. * * Ej: DO FOXBIN2PRG.PRG WITH "C:\DESA\INTEGRACION\LIBRERIA.VCX" *--------------------------------------------------------------------------------------------------- @@ -768,11 +770,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSIÓN lcFileSpec = FULLPATH( tc_InputFile ) - IF THIS.l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + DO CASE + CASE THIS.l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) CD (tcRecompile) - ELSE - *CD (JUSTPATH(lcFileSpec)) - ENDIF + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + THIS.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' IF THIS.l_Debug @@ -838,11 +842,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF FILE(tc_InputFile) ERASE ( tc_InputFile + '.ERR' ) - IF THIS.l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + DO CASE + CASE THIS.l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) CD (tcRecompile) - ELSE - *CD (JUSTPATH(tc_InputFile)) - ENDIF + CASE tcRecompile == '1' + CD (JUSTPATH(tc_InputFile)) + ENDCASE THIS.c_LogFile = tc_InputFile + '.LOG' @@ -2026,6 +2031,12 @@ DEFINE CLASS c_conversor_base AS SESSION lcPropName = SUBSTR(tcPropName,5) CASE NOT tcOperation == 'SETNAME' ERROR C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC + CASE lcPropName == 'ErasePage' && PageFrame: Debe estar antes que PageCount + lcPropName = 'A002' + lcPropName + CASE lcPropName == 'PageCount' && PageFrame: Debe estar antes que ActivePage + lcPropName = 'A003' + lcPropName + CASE lcPropName == 'ActivePage' && PageFrame: Debe estar antes que Top/Left/With/Height + lcPropName = 'A004' + lcPropName CASE lcPropName == 'ButtonCount' lcPropName = 'A005' + lcPropName CASE lcPropName == 'ColumnCount'