mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-01-24 18:25:32 +00:00
Add some more apex and openedge fixtures
This commit is contained in:
23
test/fixtures/openedge-abl/SendEmailAlgorithm.cls
vendored
Normal file
23
test/fixtures/openedge-abl/SendEmailAlgorithm.cls
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
File : SendEmailAlgorithm
|
||||
Purpose :
|
||||
Syntax :
|
||||
Description : Uses object-oriented Strategy Pattern to abstract away the
|
||||
algorithm for sending an email by encapsulating it
|
||||
into a data structure.
|
||||
Author(s) : Abe Voelker
|
||||
Created : Sat Jul 17 17:11:18 CDT 2010
|
||||
Notes :
|
||||
----------------------------------------------------------------------*/
|
||||
|
||||
USING Progress.Lang.*.
|
||||
|
||||
INTERFACE email.SendEmailAlgorithm:
|
||||
|
||||
/* Returns: */
|
||||
/* SUCCESS = empty return string */
|
||||
/* FAILURE = error message in return string */
|
||||
METHOD PUBLIC CHARACTER sendEmail(INPUT ipobjEmail AS email.Email).
|
||||
|
||||
END INTERFACE.
|
||||
118
test/fixtures/openedge-abl/SocketReader.p
vendored
Normal file
118
test/fixtures/openedge-abl/SocketReader.p
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
File : SocketReader.p
|
||||
Purpose :
|
||||
Author(s) : Abe Voelker
|
||||
Created : Sat Aug 21 08:31:38 CDT 2010
|
||||
Notes : Based on code from smtpmail.p
|
||||
----------------------------------------------------------------------*/
|
||||
|
||||
/* *************************** Definitions ************************** */
|
||||
DEFINE INPUT PARAMETER objSendEmailAlg AS email.SendEmailSocket NO-UNDO.
|
||||
DEFINE VARIABLE vbuffer AS MEMPTR NO-UNDO.
|
||||
DEFINE VARIABLE vstatus AS LOGICAL NO-UNDO.
|
||||
DEFINE VARIABLE vState AS INTEGER NO-UNDO.
|
||||
|
||||
|
||||
ASSIGN vstate = 1.
|
||||
|
||||
/* ******************** Preprocessor Definitions ******************** */
|
||||
|
||||
|
||||
/* *************************** Main Block *************************** */
|
||||
|
||||
FUNCTION getHostname RETURNS CHARACTER():
|
||||
DEFINE VARIABLE cHostname AS CHARACTER NO-UNDO.
|
||||
INPUT THROUGH hostname NO-ECHO.
|
||||
IMPORT UNFORMATTED cHostname.
|
||||
INPUT CLOSE.
|
||||
RETURN cHostname.
|
||||
END FUNCTION.
|
||||
|
||||
/*
|
||||
Status:
|
||||
0 - No Connection to the server
|
||||
1 - Waiting for 220 connection to SMTP server
|
||||
2 - Waiting for 250 OK status to start sending email
|
||||
3 - Waiting for 250 OK status for sender
|
||||
4 - Waiting for 250 OK status for recipient
|
||||
5 - Waiting for 354 OK status to send data
|
||||
6 - Waiting for 250 OK status for message received
|
||||
7 - Quiting
|
||||
*/
|
||||
|
||||
PROCEDURE newState:
|
||||
DEFINE INPUT PARAMETER newState AS INTEGER.
|
||||
DEFINE INPUT PARAMETER pstring AS CHARACTER.
|
||||
vState = newState.
|
||||
IF pstring = "" THEN
|
||||
RETURN.
|
||||
SET-SIZE(vbuffer) = LENGTH(pstring) + 1.
|
||||
PUT-STRING(vbuffer,1) = pstring.
|
||||
SELF:WRITE(vbuffer, 1, LENGTH(pstring)).
|
||||
SET-SIZE(vbuffer) = 0.
|
||||
END PROCEDURE.
|
||||
|
||||
PROCEDURE ReadSocketResponse:
|
||||
DEFINE VARIABLE vlength AS INTEGER NO-UNDO.
|
||||
DEFINE VARIABLE str AS CHARACTER NO-UNDO.
|
||||
DEFINE VARIABLE v AS INTEGER NO-UNDO.
|
||||
|
||||
MESSAGE SELF:GET-BYTES-AVAILABLE() VIEW-AS ALERT-BOX.
|
||||
vlength = SELF:GET-BYTES-AVAILABLE().
|
||||
IF vlength > 0 THEN DO:
|
||||
SET-SIZE(vbuffer) = vlength + 1.
|
||||
SELF:READ(vbuffer, 1, vlength, 1).
|
||||
str = GET-STRING(vbuffer,1).
|
||||
SET-SIZE(vbuffer) = 0.
|
||||
objSendEmailAlg:handleResponse(str).
|
||||
/*
|
||||
v = INTEGER(ENTRY(1, str," ")).
|
||||
CASE vState:
|
||||
WHEN 1 THEN
|
||||
IF v = 220 THEN
|
||||
RUN newState(2, "HELO " + getHostname() + "~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
WHEN 2 THEN
|
||||
IF v = 250 THEN
|
||||
RUN newState(3, "MAIL From: " + "hardcoded@gmail.com" + "~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
WHEN 3 THEN
|
||||
IF v = 250 THEN
|
||||
RUN newState(4, "RCPT TO: " + "hardcoded@gmail.com" + "~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
WHEN 4 THEN
|
||||
IF v = 250 THEN
|
||||
RUN newState(5, "DATA ~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
WHEN 5 THEN
|
||||
IF v = 354 THEN
|
||||
RUN newState(6, "From: " + "hardcoded@gmail.com" + "~r~n" +
|
||||
"To: " + "hardcoded@gmail.com" + " ~r~n" +
|
||||
"Subject: " + "Test Subject" +
|
||||
" ~r~n~r~n" +
|
||||
"Test Body" + "~r~n" +
|
||||
".~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
|
||||
WHEN 6 THEN
|
||||
IF v = 250 THEN
|
||||
RUN newState(7,"QUIT~r~n").
|
||||
ELSE
|
||||
vState = -1.
|
||||
END CASE.
|
||||
*/
|
||||
END.
|
||||
/*
|
||||
IF vState = 7 THEN
|
||||
MESSAGE "Email has been accepted for delivery.".
|
||||
IF vState < 0 THEN
|
||||
MESSAGE "Email has been aborted".
|
||||
*/
|
||||
END PROCEDURE.
|
||||
|
||||
57
test/fixtures/openedge-abl/Util.cls
vendored
Normal file
57
test/fixtures/openedge-abl/Util.cls
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
File : Util.cls
|
||||
Description : Utility class for various methods that do not fit neatly into
|
||||
existing class structures.
|
||||
Author(s) : Abe Voelker
|
||||
Created : Sat Jun 26 16:05:14 CDT 2010
|
||||
Notes :
|
||||
----------------------------------------------------------------------*/
|
||||
|
||||
USING Progress.Lang.*.
|
||||
|
||||
|
||||
CLASS email.Util USE-WIDGET-POOL FINAL:
|
||||
|
||||
DEFINE PRIVATE STATIC VARIABLE cMonthMap AS CHARACTER EXTENT 12 INITIAL
|
||||
["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].
|
||||
|
||||
/* Converts ABL DateTime-TZ default string format (07/21/2010 21:16:47.141-05:00) */
|
||||
/* to Email standard format (21 Jul 2010 21:16:47 -0500) */
|
||||
METHOD PUBLIC STATIC CHARACTER ABLDateTimeToEmail(INPUT ipdttzDateTime AS DATETIME-TZ):
|
||||
RETURN STRING(DAY(ipdttzDateTime)) + " " + cMonthMap[MONTH(ipdttzDateTime)] + " " +
|
||||
STRING(YEAR(ipdttzDateTime)) + " " +
|
||||
STRING( INTEGER( TRUNCATE( MTIME( ipdttzDateTime ) / 1000, 0 ) ), "HH:MM:SS" ) + " " +
|
||||
ABLTimeZoneToString(TIMEZONE(ipdttzDateTime)).
|
||||
END METHOD.
|
||||
|
||||
METHOD PUBLIC STATIC CHARACTER ABLDateTimeToEmail(INPUT ipdtDateTime AS DATETIME):
|
||||
RETURN ABLDateTimeToEmail(DATETIME-TZ(ipdtDateTime)). /* Time zone will be session value */
|
||||
END METHOD.
|
||||
|
||||
/* Note: ABL MODULO function returns incorrect values for negative numbers! */
|
||||
METHOD PUBLIC STATIC CHARACTER ABLTimeZoneToString(INPUT ipiTimeZone AS INTEGER):
|
||||
RETURN STRING(TRUNCATE(ipiTimeZone / 60, 0), "-99") + STRING(ABSOLUTE(ipiTimeZone) MODULO 60, "99").
|
||||
END METHOD.
|
||||
|
||||
/* Converts input plain text into base64-encoded, email-standard width string data */
|
||||
METHOD PUBLIC STATIC LONGCHAR ConvertDataToBase64(INPUT iplcNonEncodedData AS LONGCHAR):
|
||||
DEFINE VARIABLE lcPreBase64Data AS LONGCHAR NO-UNDO.
|
||||
DEFINE VARIABLE lcPostBase64Data AS LONGCHAR NO-UNDO.
|
||||
DEFINE VARIABLE mptrPostBase64Data AS MEMPTR NO-UNDO.
|
||||
DEFINE VARIABLE i AS INTEGER NO-UNDO.
|
||||
|
||||
/* Read file into MEMPTR and convert it to base-64 */
|
||||
COPY-LOB FROM OBJECT iplcNonEncodedData TO mptrPostBase64Data.
|
||||
lcPreBase64Data = BASE64-ENCODE(mptrPostBase64Data).
|
||||
SET-SIZE(mptrPostBase64Data) = 0. /* Free memory */
|
||||
|
||||
/* Convert base-64 data into 77-char width lines (for email standard) */
|
||||
DO i=1 TO LENGTH(lcPreBase64Data) BY 77:
|
||||
ASSIGN lcPostBase64Data = lcPostBase64Data + SUBSTRING(lcPreBase64Data, i, 77) + CHR(13) + CHR(10).
|
||||
END.
|
||||
|
||||
RETURN lcPostBase64Data.
|
||||
END METHOD.
|
||||
|
||||
END CLASS.
|
||||
Reference in New Issue
Block a user