From a53e824aab9195f5d00866e7dde576b67e1396e4 Mon Sep 17 00:00:00 2001 From: Otto K <1622854+EightSQ@users.noreply.github.com> Date: Fri, 1 May 2020 08:40:09 +0200 Subject: [PATCH] Stable release for 2019 (#277) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add squeak5-2 CI target and allow trunk to fail * add develop travis batch to readme * Wrap IMAP Credentials into asterixs' for propper IMAP compliance (see RFC 3501 chapter 4.3) * Emphasize LoadOlderMail ist Email list (fixes #168) * Make Endpoint use IMAP conform Strings * Change two hardcoded dictionary keys, which where supposed to be the same * Use theme-defined color for #168 fix * Relocate load-older-emails-button emphasize filter to separate method * Made AuthInfo Object only accept IMAP convertible strings * Added template coverage badge from coveralls * coveralls * added coverage icon * added coverage config to ston * Updated Coverage badge to show develop * Fixed bad double click fix, added good double click api call * $o opens selected Email * Refactored emailListKeyPressMapping * Fix typo * Configure coverage only for Core package * Added install to call Menu Entry Added * update readme * Removed class method and refactored emailListKeyPress: * Renamed and recategorized methods in ICEmail and made one triggle down change in ICFolder because of rename of uid -> uniqueID * Refactor/rename get methods (#198) * Renamed all get* method in Core * Renamed get* methods in UI * Renamed get* methods in Tests * Added lazy init for body and header in ICEmail and removed initialize (#199) * Adde lazy init for body and header in ICEmail and removed initialize * Feature/release building (#206) * Created sar export in test code * Update .travis.yml * Switched from seperate sars to one install sar * Revert "Update .travis.yml" * Feature/searchbar experience (#201) * Change Search Bar Widget from InputText to TextField * set setter and getter so the CR behavior is correct * Implement check for account name existence in login dialog (#205) * Implement check for account name existence in login dialog * Improve semantics of method name * Refactor duplicate finding * Added Lazy init for ICEndPoint, ICFetchResponseParser, ICFolder, ICServerInfo, ICStreamWrapper, ICFolderDialog and ICLoginDialog * Renamed all "anObject" parameters * TDD: Added Tests for Connection Configuration storage in ICEndPoint * Changed a* to an* * Enter confirms password (#220) * Implements #212. Deleted file storage methods in ICHelper and removed their tests. Implemented image storage in ICEndPoint and changed occurences from ICHelper * Tested validity check in ICEndpoint. This was already tested indirectly in the test for addConfiguration. This just removed the indirection. * Split up ICFolderDialog build method * Refactor ICFolderDialog build method * Introduce navigation panel element into ICFolderView * Travis can not handle asDictionary. Therefore changed to Dictionary newFrom: * Moved methods from "as yet unclassified" to fitting categories (#233) * Split build method into multiple methods * Fix empty fields checking and refactor to better naming (#213) * Fix empty fields checking and refactor to better naming * Use higher level collection protocol methods * Removed unused methods (#235) * Removed ICFolder lazy init. Reference to https://github.com/hpi-swa-teaching/IMAPClient/pull/215#pullrequestreview-252114985 and https://github.com/hpi-swa-teaching/IMAPClient/pull/215#issuecomment-505327949 * Removed ICLoadOlderMail from Core and added UI-Button which loads older emails * Fix startup configuration (#246) * Add account icon (#247) * Fixed bug which caused account to remove by adding copy (#238) * Fixed bug which caused account to remove by adding copy * Revert hacky fix * Tested occurred bug, added bug fix * Added Class Comments for all classes except the ServiceProvider in th… (#248) * Added Class Comments for all classes except the ServiceProvider in the UI and Test Packages * Ottos Feedback on wording and spelling * Use consistent wording for the description of an instance. * Establish default settings for login dialog (#250) * fixes #223 * Copied parser methods from ICEndPoint to ICParser Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Refactored the methods that have been relocated to ICParser Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Add protocol package to smalltalkCI coverage measurement Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Add protocol package to smalltalkCI coverage measurement Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Redirected parse calls in endpoint to parser Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Remove parser traces from ICEndPoint Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Fixed small bug caused by typo * Refactor/252 ICAccount info (#254) * Literally just merged ICAuthenticationInfo with ICServerInfo. Had to change constructors of course * Reworked the endpoint login and connection system to work with the new AccountInfo Class. This caused a lot of change in the test code * Fixed renaming issue * Removed unused method * Removed unused method * Renamed ICAccountInfo contructor (legacy artifact) * Review Requests on #254 * Recategorization and little code beautification * name-attribut artifact replacement * Made everything use anAccountINfo instead of Dictionary Made everything use 'accountName' instead of 'name' * Fixed "Account edit" * Fixed Test Defaults * Refactor/218 date formatted test fix (#263) * Added new tests. Made tests more specific * Fixed second and date parsing * Changed private method to travis accessible method * Moved default subject responsibilities (#264) * Moved default subject responsibilities * Code Standard * Refactor/252 ic account info (#266) * Literally just merged ICAuthenticationInfo with ICServerInfo. Had to change constructors of course * Reworked the endpoint login and connection system to work with the new AccountInfo Class. This caused a lot of change in the test code * Fixed renaming issue * Removed unused method * Removed unused method * Renamed ICAccountInfo contructor (legacy artifact) * Review Requests on #254 * Recategorization and little code beautification * name-attribut artifact replacement * Made everything use anAccountINfo instead of Dictionary Made everything use 'accountName' instead of 'name' * Fixed "Account edit" * Fixed Test Defaults * 255 folder name attribute (#262) * Made ICFolder use 'folderName' instead of 'name' * Changed ToolBuilder textfield from 'name' to 'accountName' * Typo fix * Readme/removearchitecture (#267) * remove architecture from readme. it's outdated and visible in the wiki * add hint for people to look at the wiki to readme * Moved Commands from EndPoint to ICCommand (#268) * Added Command Methods to ICCommand * Removed constants from ICCommand because they where dublicate in ICEndPoint Co-authored-by: Felix Rindt * Refactored Methods in ICCommand and methods calls in ICEndPoint Co-authored-by: Felix Rindt * Added class comment (And minor code style refactoring I forgot the last time) * Implemented required Changes * More requested changes Moving constants from EndPoint to Command, renamed Methods and recategorized * Finalize ICParser extraction - fixed broken tests Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Copied ICResponseParser into ICParser * Adapt calls and tests from ICFetchResponseParser to ICParser Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Law of Demeter, Comment corrected, removed unused method (#270) * "Das kann weg" - Patrick R. (#271) * Requested Changes and removed unused methods Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Remove `ICHelper` (#269) * Removed unused method * Refactor to use collect * Made ICHelpers paramter sort method obsolete * Changed child folder collection * Moved hash function * Moved EndPoint creation out of helper * Removed ICHelper * Pauls Feedback * Moved hash test * Made ICParser compatible with Travis Squeak Build Version Co-authored-by: Otto Kissig <1622854+EightSQ@users.noreply.github.com> * Fix test that was still using ICHelper Co-authored-by: TIm Garrels <33292335+EatingBacon@users.noreply.github.com> * fix account delete * Create tests for ICNullStream and ICStreamWrapper Co-authored-by: Tim Garrels <33292335+EatingBacon@users.noreply.github.com> * Made ICFolderDialogs `ICEndpoint` usage more obvious (#275) * Made Deployment modular * Fixed whitespace assumption * Added cover for Core Error in UI * Replaced getter with converter * UI Notes origin (#282) * Fixed whitespace assumption * Added cover for Core Error in UI * Switched "UIManager default" usage to usage of "self" * Hotfix for rootfolder and context menu * Fix 'Move to trash' Context Menu * start refactoring to remove linter issues (#286) * start refactoring to remove linter issues * fix issues according to the review from @EightSQ * Remove warning at 'Move to trash' (#287) * Refactor the protocol package according to the lint (#290) * start refactoring to remove linter issues * fix issues according to the review from @EightSQ * start linting the parser package * First Lint batch (#291) * Second Lint UI Batch (#294) * First Lint batch * Removed comments, replaced checks, shortened methods * Felix' Feedback * Refactor according to Linter in the Test Package (#295) * start refactoring to remove linter issues * fix issues according to the review from @EightSQ * Some core linting (#292) * Some core linting * Fix linting mistakes * fix EatingBacon's comments * Refactor all linting issues in Protocol package (#298) * Implemented handling of malicious mime headers (#299) * Made long methodlines short and removes unnecessary comments (#302) * Some core package linting (#301) * Some core package linting * Some more lint refactoring * Remove left over method * Remove some debug code * Fixed lints as far as humanly possible (#305) * Restore Travis Ci links [ci skip] Co-authored-by: Felix Rindt Co-authored-by: Paul Methfessel Co-authored-by: Martin Taraz <26792474+martintaraz@users.noreply.github.com> Co-authored-by: Tim Garrels Co-authored-by: EatingBacon <33292335+EatingBacon@users.noreply.github.com> Co-authored-by: justus.eilers Co-authored-by: paul.methfessel Co-authored-by: Felix Rindt Co-authored-by: Fabio Niephaus --- .smalltalk.ston | 7 +- .squot | 3 +- .travis.yml | 2 + README.md | 40 ++--- .../.squot-contents | 2 +- .../instance/baseline..st | 3 +- .../methodProperties.json | 2 +- .../IMAPClient-Core.package/.squot-contents | 2 +- .../ICAccountInfo.class/README.md | 1 + .../class/initialAccountName.st} | 2 +- .../ICAccountInfo.class/class/initialSsl.st | 4 + .../class/invalidHost.st} | 2 +- .../class/invalidPassword.st} | 2 +- .../ICAccountInfo.class/class/invalidPort.st | 4 + .../class/invalidUsername.st} | 2 +- .../ICAccountInfo.class/class/newWith..st | 10 ++ .../instance/accountName..st | 4 + .../instance/accountName.st | 4 + .../instance/asDictionary.st | 14 ++ .../instance/canConvert..st | 4 + .../instance/hasValidServerInfo.st | 5 + .../instance/hasValidUserInfo.st | 5 + .../ICAccountInfo.class/instance/host..st | 4 + .../ICAccountInfo.class/instance/host.st | 4 + .../ICAccountInfo.class/instance/isValid.st | 4 + .../ICAccountInfo.class/instance/password..st | 5 + .../ICAccountInfo.class/instance/password.st | 4 + .../instance/passwordAsIMAPString.st | 4 + .../ICAccountInfo.class/instance/port..st | 4 + .../ICAccountInfo.class/instance/port.st | 4 + .../ICAccountInfo.class/instance/printOn..st | 11 ++ .../ICAccountInfo.class/instance/ssl..st | 4 + .../ICAccountInfo.class/instance/ssl.st | 4 + .../ICAccountInfo.class/instance/username..st | 5 + .../ICAccountInfo.class/instance/username.st | 4 + .../instance/usernameAsIMAPString.st | 4 + .../ICAccountInfo.class/methodProperties.json | 30 ++++ .../properties.json | 10 +- .../ICAuthenticationInfo.class/README.md | 1 - .../class/for.using..st | 6 - .../instance/initialize.st | 5 - .../instance/isValid.st | 4 - .../instance/password..st | 4 - .../instance/password.st | 4 - .../instance/username..st | 4 - .../instance/username.st | 4 - .../methodProperties.json | 14 -- .../ICEmail.class/README.md | 1 + .../ICEmail.class/instance/asString.st | 2 +- .../ICEmail.class/instance/body..st | 4 +- .../ICEmail.class/instance/body.st | 2 +- .../instance/contentTransferEncoding..st | 2 +- .../instance/contentTransferEncoding.st | 2 +- .../ICEmail.class/instance/contentType..st | 2 +- .../ICEmail.class/instance/contentType.st | 2 +- .../ICEmail.class/instance/date..st | 2 +- .../ICEmail.class/instance/date.st | 2 +- .../{getDateFormatted.st => dateFormatted.st} | 12 +- .../instance/dateInSecondsSince1980.st | 4 + .../instance/dateInSecondsSinceSqueakEpoch.st | 4 + .../ICEmail.class/instance/deleteEmail.st | 4 +- .../instance/deleteEmailFromDisk.st | 4 +- .../ICEmail.class/instance/deleted..st | 2 +- .../ICEmail.class/instance/deleted.st | 2 +- .../ICEmail.class/instance/expungeEmails.st | 4 +- .../ICEmail.class/instance/flagged..st | 2 +- .../ICEmail.class/instance/flagged.st | 2 +- .../ICEmail.class/instance/folder..st | 4 +- .../ICEmail.class/instance/from..st | 2 +- .../ICEmail.class/instance/from.st | 2 +- .../instance/getDateInSeconds.st | 12 -- .../ICEmail.class/instance/header..st | 4 +- .../ICEmail.class/instance/header.st | 2 +- .../ICEmail.class/instance/initialize.st | 6 - .../ICEmail.class/instance/isFlaggable.st | 4 - .../ICEmail.class/instance/messageID..st | 4 +- .../ICEmail.class/instance/modifyFlag..st | 2 +- .../ICEmail.class/instance/moveEmail..st | 4 +- .../ICEmail.class/instance/retrieveBody.st | 14 +- .../ICEmail.class/instance/retrieveFlags.st | 4 +- .../ICEmail.class/instance/saveInMaildir.st | 2 +- .../ICEmail.class/instance/seen..st | 2 +- .../ICEmail.class/instance/seen.st | 2 +- .../ICEmail.class/instance/subject..st | 2 +- .../ICEmail.class/instance/subject.st | 4 +- .../ICEmail.class/instance/to..st | 2 +- .../ICEmail.class/instance/to.st | 2 +- .../ICEmail.class/instance/uid..st | 4 - .../ICEmail.class/instance/uid.st | 4 - .../ICEmail.class/instance/uniqueID..st | 4 + .../ICEmail.class/instance/uniqueID.st | 4 + .../ICEmail.class/methodProperties.json | 40 ++--- .../ICEmail.class/properties.json | 4 +- .../accountFolderHashRelevantCharacters.st | 4 + .../class/addConfiguration..st | 5 + .../class/asProtocolQuote..st | 4 - .../class/basicConnectionConfigurations.st | 4 + .../class/checkValidConfiguration..st | 8 + .../class/clearConfigurations.st | 4 + .../ICEndPoint.class/class/commandFailed.st | 4 - .../class/commandSucceeded.st | 4 - .../class/connectionConfigurations..st | 4 + .../class/connectionConfigurations.st | 4 + .../class/defaultStreamClass.st | 4 + .../ICEndPoint.class/class/deleteEmail..st | 4 - .../class/errorBadParameter.st | 4 - ...errorInvalidAuthenticationConfiguration.st | 4 - .../class/errorLoginFailed.st | 4 - .../class/errorNoConnection.st | 4 - .../class/errorNoPasswordSet.st | 4 - .../class/errorNoUsernameSet.st | 4 - .../ICEndPoint.class/class/expungeEmail.st | 4 - .../class/fetchBodyCommand..st | 4 - .../class/fetchFlagsWithUIDRange.to..st | 5 - .../class/fetchHeadersWithUIDRange.to..st | 7 - .../ICEndPoint.class/class/getAllUIDs.st | 4 - .../ICEndPoint.class/class/lastHeaderLine.st | 4 - .../ICEndPoint.class/class/listCommand.st | 4 - .../ICEndPoint.class/class/loginCommand.st | 4 - .../ICEndPoint.class/class/logoutCommand.st | 4 - .../ICEndPoint.class/class/moveEmail.to..st | 5 - .../ICEndPoint.class/class/noopCommand.st | 4 - .../ICEndPoint.class/class/protocolError.st | 4 - .../refreshConnectionIntervalInSeconds.st | 4 + .../class/removeConfiguration..st | 4 + .../class/resetFlagFlagged..st | 5 - .../ICEndPoint.class/class/resetFlagSeen..st | 5 - .../ICEndPoint.class/class/selectCommand..st | 5 - .../ICEndPoint.class/class/setFlagFlagged..st | 5 - .../ICEndPoint.class/class/setFlagSeen..st | 5 - .../ICEndPoint.class/instance/accountInfo..st | 4 + .../ICEndPoint.class/instance/accountInfo.st | 4 + .../instance/asAccountInfoDictionary.st | 4 + .../ICEndPoint.class/instance/asDictionary.st | 17 -- .../instance/authenticationInfo..st | 4 - .../instance/authenticationInfo.st | 4 - .../instance/checkConnected.st | 2 +- .../instance/checkForBadRequest.st | 2 +- .../instance/checkForParameterError.st | 6 +- .../instance/checkLoggedIn.st | 2 +- .../ICEndPoint.class/instance/close.st | 2 +- .../instance/commandSucceeded.st | 4 - .../ICEndPoint.class/instance/connect.st | 4 + .../instance/connectAndLoginWith..st | 14 ++ .../instance/connectTo.on..st | 4 - .../instance/connectTo.on.with..st | 4 - .../instance/connectTo.with..st | 12 -- .../ICEndPoint.class/instance/connectWith..st | 11 ++ .../instance/createEmailsWith.andName.and..st | 21 +-- .../ICEndPoint.class/instance/currentUIDs.st | 12 ++ .../instance/currentUIDsFor..st | 23 +++ .../ICEndPoint.class/instance/deleteEmail..st | 4 +- .../ICEndPoint.class/instance/expungeEmail.st | 2 +- .../instance/fatalErrorOccured..st | 5 +- .../instance/fatalErrorOccured.st | 7 +- .../instance/fetchMailsBeginningAt.number..st | 2 +- .../instance/fetchNextResponse.st | 2 +- .../ICEndPoint.class/instance/fillBodyFor..st | 6 +- .../instance/folderFromResponse..st | 11 +- .../instance/folderNameOfTrash..st | 4 + .../instance/folderNameOfTrash.st | 2 +- .../instance/folderPathFrom..st | 11 -- .../instance/fromDictionary..st | 14 -- .../instance/getCurrentUIDs.st | 12 -- .../instance/getCurrentUIDsFor..st | 25 --- .../instance/getRootFolderName.st | 7 - .../ICEndPoint.class/instance/host.st | 4 + .../ICEndPoint.class/instance/initialize.st | 15 -- .../ICEndPoint.class/instance/isConnected.st | 2 +- .../ICEndPoint.class/instance/isLoggedIn.st | 4 - .../instance/lastResponse..st | 4 +- .../ICEndPoint.class/instance/lastResponse.st | 2 +- .../instance/listFoldersIn.using..st | 6 +- .../instance/loadEmailsFromMaildir.st | 8 +- .../ICEndPoint.class/instance/loggedIn..st | 4 +- .../ICEndPoint.class/instance/loggedIn.st | 2 +- .../ICEndPoint.class/instance/login.st | 14 +- .../ICEndPoint.class/instance/login.using..st | 5 - .../ICEndPoint.class/instance/loginUsing..st | 6 - .../ICEndPoint.class/instance/logout.st | 2 +- .../instance/maildirDiffFetchHeadersFrom..st | 7 +- .../maildirDiffFetchHeadersFrom.to..st | 13 +- .../instance/maildirFileName.st | 8 +- .../instance/moveEmail.to..st | 2 +- .../ICEndPoint.class/instance/name..st | 4 - .../ICEndPoint.class/instance/name.st | 4 - .../instance/parseFetchBody.st | 4 - .../instance/parseFetchFlagsOnly..st | 23 --- .../instance/parseFetchHeader.withId..st | 25 --- ...FetchHeaderContentTransferEncoding.for..st | 7 - .../parseFetchHeaderContentType.for..st | 8 - .../instance/parseFetchHeaderDate.for..st | 4 - .../instance/parseFetchHeaderFlags.for..st | 6 - .../instance/parseFetchHeaderReceiver.for..st | 4 - .../instance/parseFetchHeaderSender.for..st | 8 - .../instance/parseFetchHeaderSubject.for..st | 8 - .../instance/parseFetchHeaders..st | 11 +- .../instance/parseFetchedFlagsAndPopulate..st | 16 ++ .../instance/parseHeaderChunk.for..st | 12 -- .../instance/parseListResponse.st | 2 +- .../ICEndPoint.class/instance/parseMethods.st | 12 -- .../ICEndPoint.class/instance/ping.st | 2 +- .../instance/refreshConnectionProcess.st | 11 +- .../instance/resetFlag.and..st | 5 +- .../instance/responseIsError.st | 4 - .../instance/responseIsParameterError.st | 6 - .../instance/responseIsWarning.st | 4 - .../instance/retrieveFlagsFrom.to.in..st | 4 +- .../ICEndPoint.class/instance/rootFolder..st | 4 +- .../ICEndPoint.class/instance/rootFolder.st | 2 +- .../instance/rootFolderName.st | 6 + .../ICEndPoint.class/instance/select..st | 5 +- .../ICEndPoint.class/instance/serverInfo..st | 4 - .../ICEndPoint.class/instance/serverInfo.st | 4 - .../ICEndPoint.class/instance/setFlag.and..st | 3 +- .../ICEndPoint.class/instance/ssl..st | 4 - .../ICEndPoint.class/instance/ssl.st | 4 - .../ICEndPoint.class/instance/stream..st | 4 +- .../ICEndPoint.class/instance/stream.st | 2 +- .../instance/testAccountWith..st | 6 +- .../ICEndPoint.class/instance/uids..st | 6 +- .../ICEndPoint.class/instance/uids.st | 2 +- .../ICEndPoint.class/instance/useSSL.st | 4 - .../ICEndPoint.class/instance/username.st | 4 + .../ICEndPoint.class/methodProperties.json | 166 +++++++----------- .../ICEndPoint.class/properties.json | 9 +- .../instance/currentID..st | 4 - .../instance/currentID.st | 4 - .../instance/currentMail..st | 4 - .../instance/currentMail.st | 4 - .../instance/emails..st | 4 - .../instance/emails.st | 4 - .../instance/initialize.st | 6 - .../instance/parse..st | 10 -- .../instance/parseFetchCommand.st | 9 - .../instance/parseFetchContent.st | 39 ---- .../instance/parseID.st | 12 -- .../instance/parseMail.st | 13 -- .../instance/reader..st | 4 - .../instance/reader.st | 4 - .../instance/reset.st | 5 - .../instance/throwError..st | 7 - .../methodProperties.json | 20 --- .../properties.json | 17 -- .../ICFileReadWriter.class/README.md | 1 + .../instance/createHeaderFrom..st | 2 +- .../instance/createPathRecursive.and..st | 8 +- .../instance/get.in..st | 2 +- .../instance/getRecipientsFrom..st | 11 -- .../instance/recipientsFrom..st | 6 + .../instance/write.in.as..st | 2 +- .../methodProperties.json | 10 +- .../ICFileReadWriter.class/properties.json | 2 +- .../ICFolder.class/class/named.in..st | 2 +- .../ICFolder.class/class/named.in.with..st | 2 +- .../ICFolder.class/instance/accountName.st | 4 + .../ICFolder.class/instance/addMails..st | 4 + .../instance/checkTopicality.st | 10 +- .../instance/childFolderNamed.ifAbsent..st | 4 +- .../childFolderNamed.with.ifAbsent..st | 11 +- .../ICFolder.class/instance/childFolders..st | 4 +- .../ICFolder.class/instance/childFolders.st | 2 +- .../ICFolder.class/instance/emails..st | 4 +- .../ICFolder.class/instance/emails.st | 4 +- .../ICFolder.class/instance/endpoint..st | 4 +- .../instance/fetchHeadersFrom..st | 15 +- .../ICFolder.class/instance/folderName..st | 4 + .../ICFolder.class/instance/folderName.st | 4 + .../ICFolder.class/instance/getHighestUID.st | 6 - .../instance/getLatestEmails..st | 12 -- .../ICFolder.class/instance/getLowestUID.st | 6 - .../instance/hierarchyDelimiter.st | 4 + .../instance/highestUniqueID.st | 6 + .../ICFolder.class/instance/initialize.st | 8 - .../ICFolder.class/instance/latestEmails..st | 12 ++ .../ICFolder.class/instance/loadOlderMails.st | 6 +- .../ICFolder.class/instance/lowestUniqueID.st | 6 + .../ICFolder.class/instance/name..st | 4 - .../ICFolder.class/instance/name.st | 4 - .../ICFolder.class/instance/parent..st | 4 +- .../ICFolder.class/instance/parentPath.st | 4 + .../ICFolder.class/instance/path.st | 6 +- .../instance/recursiveChildFolders.st | 4 + .../ICFolder.class/instance/removeMail..st | 4 + .../instance/retrieveFlagsFrom.to..st | 3 - .../ICFolder.class/instance/rootFolder.st | 4 + .../instance/startUpdateProcess..st | 6 +- .../ICFolder.class/instance/update..st | 4 +- .../ICFolder.class/instance/update.st | 2 +- .../ICFolder.class/methodProperties.json | 50 +++--- .../ICFolder.class/properties.json | 2 +- .../ICHelper.class/README.md | 0 .../class/accountDictionariesToEndpoints..st | 12 -- .../class/deleteAccountFromEndpoint..st | 30 ---- .../ICHelper.class/class/getAllFolders..st | 18 -- .../class/getHashNameForAccount.and..st | 4 - .../class/loadCredentialsIntoDictionaries.st | 42 ----- .../class/makeParameterCollection..st | 16 -- .../class/parseStringToBool..st | 6 - .../ICHelper.class/class/resetMailData.st | 17 -- .../class/saveCredentialsIntoFile..st | 31 ---- .../ICHelper.class/methodProperties.json | 13 -- .../ICLoadOlderMail.class/README.md | 0 .../ICLoadOlderMail.class/class/instance..st | 4 - .../class/instanceFor..st | 17 -- .../instance/folderDialog..st | 4 - .../instance/folderDialog.st | 4 - .../instance/getDateInSeconds.st | 4 - .../instance/isFlaggable.st | 4 - .../ICLoadOlderMail.class/instance/open.st | 4 - .../instance/retrieveFlags.st | 6 - .../methodProperties.json | 11 -- .../ICLoadOlderMail.class/properties.json | 14 -- .../ICNullStream.class/README.md | 2 +- .../ICNullStream.class/properties.json | 2 +- .../ICServerInfo.class/README.md | 1 - .../ICServerInfo.class/class/defaultHost.st | 4 - .../ICServerInfo.class/class/for.using..st | 6 - .../ICServerInfo.class/instance/host..st | 4 - .../ICServerInfo.class/instance/host.st | 4 - .../ICServerInfo.class/instance/initialize.st | 5 - .../ICServerInfo.class/instance/isValid.st | 4 - .../ICServerInfo.class/instance/port..st | 4 - .../ICServerInfo.class/instance/port.st | 4 - .../ICServerInfo.class/methodProperties.json | 12 -- .../class/connectionTimeout.st | 4 + .../instance/connectTo.on..st | 8 +- .../ICStreamWrapper.class/instance/host..st | 4 +- .../instance/initialize.st | 5 - .../instance/lastResponse..st | 5 +- .../ICStreamWrapper.class/instance/port..st | 4 +- .../instance/sendCommand..st | 1 - .../ICStreamWrapper.class/instance/ssl..st | 4 +- .../ICStreamWrapper.class/instance/ssl.st | 2 +- .../instance/sslConnectTo.on..st | 8 +- .../ICStreamWrapper.class/instance/stream..st | 4 +- .../ICStreamWrapper.class/instance/stream.st | 2 +- .../methodProperties.json | 17 +- .../IMAPClient-Protocol.package/.filetree | 4 + .../.squot-contents | 5 + .../ICCommand.class/README.md | 2 + .../ICCommand.class/class/allUIDs.st | 4 + .../ICCommand.class/class/deleteEmail..st | 4 + .../ICCommand.class/class/expungeEmail.st | 4 + .../ICCommand.class/class/fetchBody..st | 4 + .../class/fetchFlagsForUIDsFrom.to..st | 4 + .../class/fetchHeadersForUIDsFrom.to..st | 7 + .../ICCommand.class/class/isValidFlag..st | 4 + .../ICCommand.class/class/join..st | 6 + .../class/listSubfoldersOf.filterBy..st | 4 + .../ICCommand.class/class/loginWith..st | 4 + .../ICCommand.class/class/logout.st | 4 + .../ICCommand.class/class/moveEmail.to..st | 4 + .../ICCommand.class/class/noop.st | 4 + .../ICCommand.class}/class/protocolBlank.st | 0 .../class/protocolCommandStart.st | 2 +- .../ICCommand.class}/class/protocolQuote.st | 0 .../ICCommand.class/class/putInQuotes..st | 4 + .../ICCommand.class/class/resetFlag.for..st | 5 + .../ICCommand.class/class/select..st | 4 + .../ICCommand.class/class/setFlag.for..st | 5 + .../ICCommand.class/methodProperties.json | 24 +++ .../ICCommand.class}/properties.json | 9 +- .../ICParser.class/README.md | 1 + .../class/buildFlagsAssociationFor.from..st | 5 + .../ICParser.class/class/chop.forEmail..st | 10 ++ .../class/closeEmailContentFrom.for..st | 5 + .../ICParser.class/class/commandSucceeded..st | 4 + .../ICParser.class/class/commandSucceeded.st | 4 + .../class/continueHeaderChunks.withLine..st | 8 + .../class/continueMailStream.into..st | 8 + .../class/extractEmailContentFrom.for..st | 8 + .../ICParser.class/class/fetchBodyOffset.st | 4 + .../ICParser.class/class/flags.st | 4 + .../class/lengthOfEmailPrefix.st | 4 + .../class/lengthOfFetchPrefix.st | 4 + .../class/parameterErrorPosition.st | 2 +- .../class/parse.forHeaderChunks.forEmail..st | 6 + .../ICParser.class/class/parseFetchBody..st | 7 + .../class/parseFetchHeader.withId..st | 9 + .../class/parseFetchMailStream..st | 9 + .../class/parseFetchedFlagsAndPopulate..st | 9 + .../class/parseFolderPathFrom..st | 9 + .../class/parseHeaderContentFrom..st | 7 + .../class/parseHeaderFieldFrom..st | 9 + .../ICParser.class/class/parseMethods.st | 12 ++ .../populate.withContentTransferEncoding..st | 4 + .../class/populate.withContentType..st | 4 + .../class/populate.withDate..st | 4 + .../class/populate.withFlags..st | 6 + .../class/populate.withHeaderChunks..st | 5 + .../class/populate.withHeadersFrom..st | 10 ++ .../class/populate.withReceiver..st | 4 + .../class/populate.withSender..st | 4 + .../class/populate.withSubject..st | 6 + .../ICParser.class/class/protocolError.st | 4 + .../class/protocolParameterError.st | 0 .../readEmailContentCharacterFrom.for..st | 9 + .../class/readEmailContentFrom.for.bySize..st | 8 + .../class/readMessageIdFromStream..st | 10 ++ .../class/readOctetSizeFrom.for..st | 5 + .../ICParser.class/class/responseIsError..st | 4 + .../class/responseIsParameterError..st | 6 + .../class/splitFolderPathResponse..st | 5 + .../class}/startsNewHeaderChunk..st | 2 +- .../ICParser.class/methodProperties.json | 45 +++++ .../ICParser.class}/properties.json | 6 +- .../ICProtocolFolder.class/README.md | 5 + .../class/newWithPath.delimitedBy..st | 6 + .../instance/folderPath..st | 4 + .../instance/folderPath.st | 4 + .../instance/hierarchyDelimiter..st | 4 + .../instance/hierarchyDelimiter.st | 4 + .../instance/pathAsArray.st | 4 + .../methodProperties.json | 9 + .../ICProtocolFolder.class/properties.json | 15 ++ .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st} | 0 .../properties.json | 2 + .../IMAPClient-Tests.package/.squot-contents | 2 +- .../ICAccountInfoTest.class/README.md | 1 + .../class/invalidPassword.st | 4 + .../class/invalidUsername.st | 4 + .../class/validAccountName.st | 4 + .../class/validHost.st | 4 + .../class/validPassword.st | 4 + .../class/validPort.st | 4 + .../class/validUsername.st | 4 + .../instance/accountInfo..st | 3 + .../instance/accountInfo.st | 3 + .../ICAccountInfoTest.class/instance/setUp.st | 11 ++ .../instance/testForArgumentCount.st | 5 + .../instance/testForValidIMAPString.st | 6 + .../methodProperties.json | 15 ++ .../properties.json | 7 +- .../ICDeployment.class/README.md | 2 + .../class/createMCZfor.in..st | 10 ++ .../class/packagesToDeploy.st | 4 + .../class/preambleString.st | 7 + .../ICDeployment.class/class/releaseName.st | 4 + .../ICDeployment.class/instance/setUp.st | 4 + .../instance/testDeployment.st | 11 ++ .../ICDeployment.class/methodProperties.json | 9 + .../properties.json | 4 +- .../ICEmailTest.class/README.md | 1 + .../ICEmailTest.class/class/emailDate.st | 4 + .../class/expected1980Seconds.st | 4 + ...arsedDate.st => expectedParsedMESZDate.st} | 2 +- .../class/expectedParsedUTCDate.st | 4 + .../class/expectedSqueakEpochSeconds.st | 4 + .../ICEmailTest.class/instance/email..st | 4 +- .../ICEmailTest.class/instance/setUp.st | 5 +- .../instance/testDateFormatted.st | 16 ++ .../instance/testDateInSecondsSince1980.st | 4 + .../testDateInSecondsSinceSqueakEpoch.st | 4 + .../instance/testGetDateFormatted.st | 13 -- .../instance/testRetrieveBody.st | 4 +- .../ICEmailTest.class/methodProperties.json | 16 +- .../ICEmailTest.class/properties.json | 2 +- .../README.md | 1 + .../class/invalidPasswordAccountInfo.st | 10 ++ .../class/invalidUsernameAccountInfo.st | 10 ++ .../class/validAccountInfo.st | 10 ++ .../class/validAccountName.st | 4 + .../class/validHost.st | 4 + .../class/validPassword.st | 2 +- .../class/validPort.st | 4 + .../class/validUsername.st | 2 +- .../instance/endPoint..st | 4 +- .../instance/setUp.st | 6 +- .../instance/tearDown.st | 2 +- .../instance/testLogin.st | 5 +- .../instance/testLoginWithInvalidPassword.st | 5 + .../instance/testLoginWithInvalidUsername.st | 5 + .../instance/testLoginWithWrongPassword.st | 7 - .../instance/testLoginWithWrongUsername.st | 7 - .../methodProperties.json | 20 ++- .../properties.json | 2 +- .../ICEndPointCommandTest.class/README.md | 1 + .../instance/endPoint..st | 4 +- .../instance/rootFolder..st | 4 +- .../instance/setUp.st | 9 +- .../instance/tearDown.st | 14 ++ ...testFetchMailsBeginningAtWithFoundMails.st | 6 +- ...tFetchMailsBeginningAtWithoutFoundMails.st | 8 +- .../instance/testFillMessageBody.st | 2 +- .../testFillMessageBodyWithMultilineBody.st | 2 +- .../instance/testRetrieveFlagsOnly.st | 6 +- .../methodProperties.json | 17 +- .../properties.json | 2 +- .../README.md | 1 + .../class/defaultConfigurationDictionary.st | 10 ++ ...faultInvalidKeysConfigurationDictionary.st | 9 + .../invalidDataDictionaryErrorMessage.st | 4 + .../previousConnectionConfigurations..st | 4 + .../previousConnectionConfigurations.st | 4 + .../instance/setUp.st | 7 + .../instance/tearDown.st | 6 + .../instance/testAddConfiguration.st | 6 + .../instance/testCheckValidConfiguration.st | 7 + .../instance/testClearConfigurations.st | 6 + .../instance/testLazyInit.st | 4 + .../instance/testReferenceDeleteSecurity.st | 10 ++ .../testRejectInvaildConfiguration.st | 11 ++ .../instance/testRemoveConfiguration.st | 6 + .../methodProperties.json | 17 ++ .../properties.json | 14 ++ .../ICEndPointConnectionTest.class/README.md | 1 + .../class/invalidHost.st | 2 +- .../class/invalidHostAccountInfo.st | 10 ++ .../class/invalidPortAccountInfo.st | 10 ++ .../class/validAccountInfo.st | 10 ++ .../class/validAccountName.st | 4 + .../class/validPassword.st | 4 + .../class/validUsername.st | 4 + .../instance/endPoint..st | 4 +- .../instance/setUp.st | 2 +- .../instance/tearDown.st | 2 +- .../instance/testConnectToOn.st | 4 +- .../instance/testConnectToOnWithWrongHost.st | 3 +- .../instance/testConnectToOnWithWrongPort.st | 3 +- .../methodProperties.json | 18 +- .../properties.json | 2 +- .../ICFetchResponseParserTest.class/README.md | 0 .../class/firstUID.st | 4 - .../instance/endpoint..st | 4 - .../instance/parser..st | 4 - .../instance/parser.st | 4 - .../instance/setUp.st | 5 - .../ICFileReadWriterTest.class/README.md | 1 + .../instance/readWriter..st | 4 +- .../instance/setUp.st | 2 +- ...testGetRecipients.st => testRecipients.st} | 4 +- .../methodProperties.json | 6 +- .../properties.json | 2 +- .../ICFolderTest.class/README.md | 1 + .../ICFolderTest.class/instance/endpoint..st | 4 +- .../instance/exampleEmailIn..st | 11 +- .../ICFolderTest.class/instance/root..st | 4 +- .../ICFolderTest.class/instance/setUp.st | 2 +- .../ICFolderTest.class/instance/tearDown.st | 2 +- ...ChildFolderNamedWithSubfolderNotPresent.st | 2 +- ...estChildFolderNamedWithSubfolderPresent.st | 2 +- .../instance/testRootFolderHashName.st | 21 +++ .../ICFolderTest.class/methodProperties.json | 9 +- .../ICFolderTest.class/properties.json | 2 +- .../ICHelperTest.class/README.md | 0 .../ICHelperTest.class/class/configFiles.st | 10 -- .../ICHelperTest.class/class/firstConfig.st | 14 -- .../ICHelperTest.class/class/secondConfig.st | 14 -- .../instance/createConfigFiles.st | 29 --- .../instance/deleteConfigFiles.and..st | 12 -- .../instance/getConfigDirectory.st | 17 -- .../instance/testDeleteAccountFromEndpoint.st | 42 ----- .../instance/testGetHashName.st | 6 - .../testLoadCredentialsIntoDictionaries.st | 16 -- .../instance/testSaveCredentialsIntoFile.st | 33 ---- .../ICHelperTest.class/methodProperties.json | 13 -- .../ICMockEndpoint.class/README.md | 1 + .../instance/mailBody..st | 4 +- .../instance/rootFolder..st | 4 +- .../ICMockEndpoint.class/instance/select..st | 6 +- .../methodProperties.json | 6 +- .../ICMockEndpoint.class/properties.json | 2 +- .../ICMockServer.class/README.md | 1 + .../instance/commandSucceeded..st | 2 +- .../instance/fetchFlagsOnlyResponse.st | 2 +- .../instance/notAuthenticatedResponses.st | 2 +- .../ICMockServer.class/instance/responses..st | 4 +- .../ICMockServer.class/instance/validHost..st | 4 +- .../instance/validHostIP..st | 4 +- .../instance/validPassword..st | 4 +- .../ICMockServer.class/instance/validPort..st | 4 +- .../instance/validUsername..st | 4 +- .../ICMockServer.class/methodProperties.json | 18 +- .../ICMockServer.class/properties.json | 2 +- .../ICMockSocketStream.class/README.md | 1 + .../instance/connected..st | 4 +- .../instance/lastResponse..st | 4 +- .../instance/nextResponse.st | 3 +- .../instance/responseQueue..st | 4 +- .../instance/server..st | 4 +- .../ICMockSocketStream.class/instance/ssl..st | 4 +- .../methodProperties.json | 12 +- .../ICMockSocketStream.class/properties.json | 2 +- .../ICNullStreamTest.class/README.md | 1 + .../instance/nullStream..st | 4 + .../instance/nullStream.st | 4 + .../ICNullStreamTest.class/instance/setUp.st | 4 + .../instance/testNullObjectBehavior.st | 9 + .../methodProperties.json | 8 + .../ICNullStreamTest.class/properties.json | 14 ++ .../ICParserTest.class/README.md | 1 + .../class/expectedNumberOfMails.st | 2 +- .../class/firstExampleResponse.st | 2 +- .../class/firstExpectedMailObject.st | 4 +- .../class/firstExpectedResponse.st | 2 +- .../class/firstMessageID.st | 2 +- .../ICParserTest.class/class/firstUID.st | 4 + .../ICParserTest.class/instance/endpoint..st | 4 + .../instance/endpoint.st | 0 .../ICParserTest.class/instance/setUp.st | 4 + .../instance/testParseSimpleFetch.st | 8 +- .../methodProperties.json | 10 +- .../properties.json | 8 +- .../ICStreamWrapperTest.class/README.md | 1 + .../class/testserverHost.st | 4 + .../class/testserverPort.st | 4 + .../class/testserverSSLPort.st | 4 + .../instance/setUp.st | 4 + .../instance/streamWrapper..st | 4 + .../instance/streamWrapper.st | 4 + .../instance/tearDown.st | 4 + .../instance/testAccessors.st | 12 ++ .../instance/testStreamConnection.st | 6 + .../instance/testStreamSSLConnection.st | 6 + .../methodProperties.json | 13 ++ .../ICStreamWrapperTest.class/properties.json | 14 ++ .../README.md | 0 .../class/initialize.st | 4 - .../methodProperties.json | 5 - .../IMAPClient-UI.package/.squot-contents | 2 +- .../class}/defaultSubject.st | 2 +- .../instance/{getBody.st => body.st} | 4 +- .../instance/buildBody..st | 9 + .../instance/buildRecipient..st | 10 ++ .../instance/buildSenderLabel..st | 10 ++ .../instance/buildSubject..st | 11 ++ .../instance/buildWith..st | 55 +----- .../instance/dialogTitle.st | 2 +- .../ICEmailDialog.class/instance/email..st | 4 +- .../ICEmailDialog.class/instance/getColor.st | 4 - .../instance/getRecipients.st | 4 - .../ICEmailDialog.class/instance/getSender.st | 4 - .../instance/getSubject.st | 4 - .../instance/recipients.st | 4 + .../ICEmailDialog.class/instance/sender.st | 4 + .../ICEmailDialog.class/instance/subject.st | 4 + .../ICEmailDialog.class/methodProperties.json | 20 ++- .../ICFolderDialog.class/class/addUserIcon.st | 10 ++ .../ICFolderDialog.class/class/install.st | 8 + .../class/loadEmailBodyFailure.st | 6 + .../instance/accountsComplete.st | 7 +- .../instance/addAccount..st | 11 +- .../instance/addPasswordToCollection..st | 17 -- .../instance/buildAddAccountButton..st | 8 + .../instance/buildEmailButton..st | 8 + .../instance/buildEmailList..st | 25 +++ .../instance/buildEmailSearch..st | 12 ++ .../instance/buildEmailTopPanel..st | 10 ++ .../instance/buildFolderTree..st | 19 ++ .../instance/buildLoadOlderEmailsButton..st | 8 + .../instance/buildNavigationPanel..st | 12 ++ .../instance/buildUserList..st | 19 ++ .../instance/buildWith..st | 100 +---------- .../instance/changeAccounts..st | 15 -- .../instance/changeFilter..st | 1 - .../instance/childFolders.st | 2 +- .../instance/closeConnection.st | 2 +- .../{addAccountButton.st => createAccount.st} | 2 +- .../instance/deleteAccountButton..st | 6 +- .../instance/deleteEmail.st | 10 +- .../instance/editAccount.with..st | 23 +-- .../instance/editAccountButton..st | 2 - .../instance/emailListKeyPress..st | 8 + .../instance/emailListKeyPressMapping.st | 6 + .../instance/emailListMenu..st | 5 +- .../instance/emailsOfSelectedFolder.st | 1 - .../instance/filterString..st | 1 - .../instance/folderListMenu.st | 2 +- .../instance/folderNameOf..st | 7 +- .../{getFolderWith..st => folderWith..st} | 2 +- .../instance/initialize.st | 12 +- .../instance/initializedAccounts..st | 4 +- .../instance/initializedAccounts.st | 2 +- .../instance/keyEvent..st | 4 - .../instance/labelForAccount..st | 4 +- .../instance/labelForFolder..st | 4 +- .../instance/labelForMail..st | 9 +- .../instance/loadOlderEmails.st | 4 +- .../instance/modifyFlag..st | 6 +- .../instance/moveEmail..st | 2 +- .../instance/numberOfFetchedFolders..st | 4 +- .../instance/numberOfFolders..st | 4 +- .../instance/openEmail..st | 16 +- .../instance/passwordPromtCallback..st | 14 ++ .../instance/progressCallback.st | 2 - .../instance/rootFolder..st | 4 +- .../instance/selectedAccount..st | 8 - .../instance/selectedAccount.st | 4 - .../instance/selectedEmail..st | 8 +- .../instance/selectedEndpoint..st | 7 + .../instance/selectedEndpoint.st | 4 + .../instance/switchToNewEndpoint.st | 12 ++ .../instance/triggerBasicChanges.st | 7 + .../instance/uninitializedAccounts..st | 4 +- .../instance/uninitializedAccounts.st | 2 +- .../ICFolderDialog.class/instance/update.st | 3 +- .../instance/userListMenu..st | 4 +- .../methodProperties.json | 90 ++++++---- .../ICFolderDialog.class/properties.json | 2 +- .../ICLoginDialog.class/README.md | 2 +- .../ICLoginDialog.class}/class/defaultPort.st | 2 +- .../class/failureLoginMessage.st | 4 - .../class/getConfigNameFile.st | 4 - .../class/inputParameterOrder.st | 4 + .../ICLoginDialog.class/class/open.with..st | 2 +- .../class/successLoginMessage.st | 4 - .../instance/accountName..st | 6 +- .../instance/accountnameUnused..st | 8 + .../instance/allFieldsFilled..st | 9 + .../instance/buildLoginButton..st | 9 + .../instance/buildNameInputField..st | 12 ++ .../instance/buildPasswordInputField..st | 13 ++ .../instance/buildServerAdressInputField..st | 12 ++ .../instance/buildServerPortInputField..st | 12 ++ .../instance/buildSslCheckBox..st | 10 ++ .../instance/buildUserInputField..st | 12 ++ .../instance/buildWith..st | 130 +++----------- .../{getButtonLabel.st => buttonLabel.st} | 2 +- .../instance/changeInputField..st | 3 +- .../instance/checkForEmptyParameter..st | 12 -- .../instance/checkIfLastCharacterIsTab..st | 6 - .../constructEmptyFieldsErrorMessage..st | 8 + .../instance/createAccountInfo.st | 10 ++ .../displayAccountnameExistsErrorMessage.st | 4 + .../displayEmptyFieldErrorMessage..st | 14 -- ...splayEmptyFieldErrorMessageIfNecessary..st | 7 + .../instance/emptyParameterFrom..st | 12 -- .../instance/emptyParametersIn..st | 4 + .../ICLoginDialog.class/instance/endpoint..st | 4 +- .../instance/folderDialogInstance..st | 4 +- .../instance/initialize.st | 12 -- .../instance/inputCollection..st | 4 +- .../instance/insertDefaults.st | 5 + .../ICLoginDialog.class/instance/keyEvent..st | 2 - .../instance/lastCharacterIsTab..st | 4 + .../ICLoginDialog.class/instance/loadData..st | 2 +- .../ICLoginDialog.class/instance/login.st | 17 +- .../instance/loginMorph..st | 4 +- .../instance/makeDataDictionary.st | 15 -- .../instance/parseStringToBool..st | 6 - .../ICLoginDialog.class/instance/password..st | 6 +- .../instance/serverAddress..st | 6 +- .../instance/serverPort..st | 9 +- .../instance/serverPortHelpText.st | 2 +- .../ICLoginDialog.class/instance/ssl..st | 4 +- .../ICLoginDialog.class/instance/ssl.st | 3 +- .../instance/symbolArray..st | 4 +- .../instance/symbolArray.st | 9 +- .../instance/updateMode..st | 4 +- .../instance/updateMode.st | 2 +- .../ICLoginDialog.class/instance/username..st | 6 +- .../ICLoginDialog.class/methodProperties.json | 68 +++---- .../ICLoginDialog.class/properties.json | 2 +- .../ICPasswordDialog.class/README.md | 1 + .../instance/buildAddPasswordButton..st | 8 + .../instance/buildPasswordField..st | 13 ++ .../instance/buildWith..st | 44 +---- .../ICPasswordDialog.class/instance/data..st | 4 +- .../instance/folderDialogInstance..st | 4 +- .../instance/keyEvent..st | 13 -- .../ICPasswordDialog.class/instance/login.st | 22 ++- .../instance/loginWithPassword..st | 5 + .../instance/password..st | 4 +- .../instance/window..st | 4 +- .../methodProperties.json | 16 +- .../ICPasswordDialog.class/properties.json | 2 +- .../README.md | 0 .../class/initialize.st | 4 - .../methodProperties.json | 5 - .../properties.json | 14 -- ...6-aaf887fc-6600-11e8-9dc8-847775df210c.png | Bin 133493 -> 0 bytes ...6-45090ee8-6601-11e8-8e89-9d9f6a536792.png | Bin 221993 -> 0 bytes ...9-7fddabc8-6601-11e8-9247-7df69755c6e9.png | Bin 200119 -> 0 bytes ...8-95f11300-6601-11e8-9ce6-70933baae984.png | Bin 187699 -> 0 bytes screenshots/architecture.png | Bin 163390 -> 0 bytes 777 files changed, 2731 insertions(+), 2746 deletions(-) create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/README.md rename packages/IMAPClient-Core.package/{ICAuthenticationInfo.class/class/initialUsername.st => ICAccountInfo.class/class/initialAccountName.st} (57%) create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialSsl.st rename packages/IMAPClient-Core.package/{ICAuthenticationInfo.class/class/initialPassword.st => ICAccountInfo.class/class/invalidHost.st} (61%) rename packages/IMAPClient-Core.package/{ICAuthenticationInfo.class/class/defaultPassword.st => ICAccountInfo.class/class/invalidPassword.st} (61%) create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPort.st rename packages/IMAPClient-Core.package/{ICAuthenticationInfo.class/class/defaultUsername.st => ICAccountInfo.class/class/invalidUsername.st} (61%) create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/class/newWith..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/asDictionary.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/canConvert..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidServerInfo.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidUserInfo.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/isValid.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/passwordAsIMAPString.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/printOn..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username..st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/instance/usernameAsIMAPString.st create mode 100644 packages/IMAPClient-Core.package/ICAccountInfo.class/methodProperties.json rename packages/IMAPClient-Core.package/{ICAuthenticationInfo.class => ICAccountInfo.class}/properties.json (57%) delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/README.md delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/for.using..st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/initialize.st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/isValid.st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password..st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password.st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username..st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username.st delete mode 100644 packages/IMAPClient-Core.package/ICAuthenticationInfo.class/methodProperties.json rename packages/IMAPClient-Core.package/ICEmail.class/instance/{getDateFormatted.st => dateFormatted.st} (55%) create mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSince1980.st create mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSinceSqueakEpoch.st delete mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/getDateInSeconds.st delete mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/initialize.st delete mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/isFlaggable.st delete mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/uid..st delete mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/uid.st create mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID..st create mode 100644 packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/accountFolderHashRelevantCharacters.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/addConfiguration..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/asProtocolQuote..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/basicConnectionConfigurations.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/checkValidConfiguration..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/clearConfigurations.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/commandFailed.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/commandSucceeded.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/defaultStreamClass.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/deleteEmail..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorBadParameter.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorInvalidAuthenticationConfiguration.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorLoginFailed.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoConnection.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoPasswordSet.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoUsernameSet.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/expungeEmail.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchBodyCommand..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchFlagsWithUIDRange.to..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchHeadersWithUIDRange.to..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/getAllUIDs.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/lastHeaderLine.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/listCommand.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/loginCommand.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/logoutCommand.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/moveEmail.to..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/noopCommand.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolError.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/refreshConnectionIntervalInSeconds.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/removeConfiguration..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagFlagged..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagSeen..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/selectCommand..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagFlagged..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagSeen..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/asAccountInfoDictionary.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/asDictionary.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/commandSucceeded.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connect.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectAndLoginWith..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on.with..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.with..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectWith..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDs.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDsFor..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderPathFrom..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/fromDictionary..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDs.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDsFor..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/getRootFolderName.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/host.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/initialize.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/isLoggedIn.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.using..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/loginUsing..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/name..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/name.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchBody.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchFlagsOnly..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeader.withId..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentTransferEncoding.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentType.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderDate.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderFlags.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderReceiver.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSender.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSubject.for..st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchedFlagsAndPopulate..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseHeaderChunk.for..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseMethods.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsError.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsParameterError.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsWarning.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolderName.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl..st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl.st delete mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/useSSL.st create mode 100644 packages/IMAPClient-Core.package/ICEndPoint.class/instance/username.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/initialize.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parse..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchCommand.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchContent.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseID.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseMail.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reset.st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/throwError..st delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/methodProperties.json delete mode 100644 packages/IMAPClient-Core.package/ICFetchResponseParser.class/properties.json delete mode 100644 packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/getRecipientsFrom..st create mode 100644 packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/recipientsFrom..st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/accountName.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/addMails..st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/folderName..st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/folderName.st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/getHighestUID.st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/getLatestEmails..st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/getLowestUID.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/hierarchyDelimiter.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/highestUniqueID.st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/initialize.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/latestEmails..st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/lowestUniqueID.st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/name..st delete mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/name.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/parentPath.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/recursiveChildFolders.st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/removeMail..st create mode 100644 packages/IMAPClient-Core.package/ICFolder.class/instance/rootFolder.st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/README.md delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/accountDictionariesToEndpoints..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/deleteAccountFromEndpoint..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/getAllFolders..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/getHashNameForAccount.and..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/loadCredentialsIntoDictionaries.st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/makeParameterCollection..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/parseStringToBool..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/resetMailData.st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/class/saveCredentialsIntoFile..st delete mode 100644 packages/IMAPClient-Core.package/ICHelper.class/methodProperties.json delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/README.md delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instance..st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instanceFor..st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog..st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog.st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/getDateInSeconds.st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/isFlaggable.st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/open.st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/retrieveFlags.st delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/methodProperties.json delete mode 100644 packages/IMAPClient-Core.package/ICLoadOlderMail.class/properties.json delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/README.md delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultHost.st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/class/for.using..st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/host..st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/host.st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/initialize.st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/isValid.st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/port..st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/instance/port.st delete mode 100644 packages/IMAPClient-Core.package/ICServerInfo.class/methodProperties.json create mode 100644 packages/IMAPClient-Core.package/ICStreamWrapper.class/class/connectionTimeout.st delete mode 100644 packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/initialize.st create mode 100644 packages/IMAPClient-Protocol.package/.filetree create mode 100644 packages/IMAPClient-Protocol.package/.squot-contents create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/README.md create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/allUIDs.st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/deleteEmail..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/expungeEmail.st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchBody..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchFlagsForUIDsFrom.to..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchHeadersForUIDsFrom.to..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/isValidFlag..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/join..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/listSubfoldersOf.filterBy..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/loginWith..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/logout.st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/moveEmail.to..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/noop.st rename packages/{IMAPClient-Core.package/ICEndPoint.class => IMAPClient-Protocol.package/ICCommand.class}/class/protocolBlank.st (100%) rename packages/{IMAPClient-Core.package/ICEndPoint.class => IMAPClient-Protocol.package/ICCommand.class}/class/protocolCommandStart.st (82%) rename packages/{IMAPClient-Core.package/ICEndPoint.class => IMAPClient-Protocol.package/ICCommand.class}/class/protocolQuote.st (100%) create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/putInQuotes..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/resetFlag.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/select..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/class/setFlag.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICCommand.class/methodProperties.json rename packages/{IMAPClient-Core.package/ICServerInfo.class => IMAPClient-Protocol.package/ICCommand.class}/properties.json (51%) create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/README.md create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/buildFlagsAssociationFor.from..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/chop.forEmail..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/closeEmailContentFrom.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded.st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/continueHeaderChunks.withLine..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/continueMailStream.into..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/extractEmailContentFrom.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/fetchBodyOffset.st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/flags.st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfEmailPrefix.st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfFetchPrefix.st rename packages/{IMAPClient-Core.package/ICEndPoint.class => IMAPClient-Protocol.package/ICParser.class}/class/parameterErrorPosition.st (73%) create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parse.forHeaderChunks.forEmail..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchBody..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchHeader.withId..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchMailStream..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchedFlagsAndPopulate..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseFolderPathFrom..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderContentFrom..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderFieldFrom..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/parseMethods.st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentTransferEncoding..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentType..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withDate..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withFlags..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeaderChunks..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeadersFrom..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withReceiver..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSender..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSubject..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/protocolError.st rename packages/{IMAPClient-Core.package/ICEndPoint.class => IMAPClient-Protocol.package/ICParser.class}/class/protocolParameterError.st (100%) create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentCharacterFrom.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentFrom.for.bySize..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/readMessageIdFromStream..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/readOctetSizeFrom.for..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsError..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsParameterError..st create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/class/splitFolderPathResponse..st rename packages/{IMAPClient-Core.package/ICEndPoint.class/instance => IMAPClient-Protocol.package/ICParser.class/class}/startsNewHeaderChunk..st (89%) create mode 100644 packages/IMAPClient-Protocol.package/ICParser.class/methodProperties.json rename packages/{IMAPClient-Core.package/ICHelper.class => IMAPClient-Protocol.package/ICParser.class}/properties.json (57%) create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/README.md create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/class/newWithPath.delimitedBy..st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath..st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath.st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter..st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter.st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/pathAsArray.st create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/methodProperties.json create mode 100644 packages/IMAPClient-Protocol.package/ICProtocolFolder.class/properties.json create mode 100644 packages/IMAPClient-Protocol.package/monticello.meta/categories.st rename packages/{IMAPClient-Core.package/ICFetchResponseParser.class/README.md => IMAPClient-Protocol.package/monticello.meta/initializers.st} (100%) create mode 100644 packages/IMAPClient-Protocol.package/properties.json create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/README.md create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidPassword.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidUsername.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validAccountName.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validHost.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPassword.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPort.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validUsername.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo..st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/setUp.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForArgumentCount.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForValidIMAPString.st create mode 100644 packages/IMAPClient-Tests.package/ICAccountInfoTest.class/methodProperties.json rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICAccountInfoTest.class}/properties.json (64%) create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/README.md create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/class/createMCZfor.in..st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/class/packagesToDeploy.st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/class/preambleString.st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/class/releaseName.st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/instance/setUp.st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/instance/testDeployment.st create mode 100644 packages/IMAPClient-Tests.package/ICDeployment.class/methodProperties.json rename packages/IMAPClient-Tests.package/{ICHelperTest.class => ICDeployment.class}/properties.json (72%) create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/class/emailDate.st create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/class/expected1980Seconds.st rename packages/IMAPClient-Tests.package/ICEmailTest.class/class/{expectedParsedDate.st => expectedParsedMESZDate.st} (57%) create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedUTCDate.st create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedSqueakEpochSeconds.st create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateFormatted.st create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSince1980.st create mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSinceSqueakEpoch.st delete mode 100644 packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testGetDateFormatted.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidPasswordAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidUsernameAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountName.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validHost.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPort.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidPassword.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidUsername.st delete mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongPassword.st delete mode 100644 packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongUsername.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/tearDown.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/README.md create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultConfigurationDictionary.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultInvalidKeysConfigurationDictionary.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/invalidDataDictionaryErrorMessage.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations..st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/setUp.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/tearDown.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testAddConfiguration.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testCheckValidConfiguration.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testClearConfigurations.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testLazyInit.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testReferenceDeleteSecurity.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRejectInvaildConfiguration.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRemoveConfiguration.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/methodProperties.json create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/properties.json create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHostAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidPortAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountInfo.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountName.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validPassword.st create mode 100644 packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validUsername.st delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/README.md delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstUID.st delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint..st delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser..st delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser.st delete mode 100644 packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/setUp.st rename packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/{testGetRecipients.st => testRecipients.st} (67%) create mode 100644 packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testRootFolderHashName.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/README.md delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/class/configFiles.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/class/firstConfig.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/class/secondConfig.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/createConfigFiles.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/deleteConfigFiles.and..st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/getConfigDirectory.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testDeleteAccountFromEndpoint.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testGetHashName.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testLoadCredentialsIntoDictionaries.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testSaveCredentialsIntoFile.st delete mode 100644 packages/IMAPClient-Tests.package/ICHelperTest.class/methodProperties.json create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/README.md create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream..st create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream.st create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/setUp.st create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/testNullObjectBehavior.st create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/methodProperties.json create mode 100644 packages/IMAPClient-Tests.package/ICNullStreamTest.class/properties.json create mode 100644 packages/IMAPClient-Tests.package/ICParserTest.class/README.md rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/class/expectedNumberOfMails.st (58%) rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/class/firstExampleResponse.st (94%) rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/class/firstExpectedMailObject.st (82%) rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/class/firstExpectedResponse.st (94%) rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/class/firstMessageID.st (55%) create mode 100644 packages/IMAPClient-Tests.package/ICParserTest.class/class/firstUID.st create mode 100644 packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint..st rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/instance/endpoint.st (100%) create mode 100644 packages/IMAPClient-Tests.package/ICParserTest.class/instance/setUp.st rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/instance/testParseSimpleFetch.st (69%) rename packages/IMAPClient-Tests.package/{ICFetchResponseParserTest.class => ICParserTest.class}/methodProperties.json (53%) rename packages/IMAPClient-Tests.package/{IMAPClientTestsServiceProvider.class => ICParserTest.class}/properties.json (57%) create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/README.md create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverHost.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverPort.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverSSLPort.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/setUp.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper..st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/tearDown.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testAccessors.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamConnection.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamSSLConnection.st create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/methodProperties.json create mode 100644 packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/properties.json delete mode 100644 packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/README.md delete mode 100644 packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/class/initialize.st delete mode 100644 packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/methodProperties.json rename packages/{IMAPClient-Core.package/ICEmail.class/instance => IMAPClient-UI.package/ICEmailDialog.class/class}/defaultSubject.st (76%) rename packages/IMAPClient-UI.package/ICEmailDialog.class/instance/{getBody.st => body.st} (75%) create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildBody..st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildRecipient..st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSenderLabel..st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSubject..st delete mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getColor.st delete mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getRecipients.st delete mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSender.st delete mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSubject.st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/recipients.st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/sender.st create mode 100644 packages/IMAPClient-UI.package/ICEmailDialog.class/instance/subject.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/class/addUserIcon.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/class/install.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/class/loadEmailBodyFailure.st delete mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addPasswordToCollection..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildAddAccountButton..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailButton..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailList..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailSearch..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailTopPanel..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildFolderTree..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildLoadOlderEmailsButton..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildNavigationPanel..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildUserList..st delete mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeAccounts..st rename packages/IMAPClient-UI.package/ICFolderDialog.class/instance/{addAccountButton.st => createAccount.st} (71%) create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPress..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPressMapping.st rename packages/IMAPClient-UI.package/ICFolderDialog.class/instance/{getFolderWith..st => folderWith..st} (80%) delete mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/keyEvent..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/passwordPromtCallback..st delete mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount..st delete mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint..st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/switchToNewEndpoint.st create mode 100644 packages/IMAPClient-UI.package/ICFolderDialog.class/instance/triggerBasicChanges.st rename packages/{IMAPClient-Core.package/ICServerInfo.class => IMAPClient-UI.package/ICLoginDialog.class}/class/defaultPort.st (79%) delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/class/failureLoginMessage.st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/class/getConfigNameFile.st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/class/inputParameterOrder.st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/class/successLoginMessage.st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountnameUnused..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/allFieldsFilled..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildLoginButton..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildNameInputField..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildPasswordInputField..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerAdressInputField..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerPortInputField..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildSslCheckBox..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildUserInputField..st rename packages/IMAPClient-UI.package/ICLoginDialog.class/instance/{getButtonLabel.st => buttonLabel.st} (82%) delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkForEmptyParameter..st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkIfLastCharacterIsTab..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/constructEmptyFieldsErrorMessage..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/createAccountInfo.st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayAccountnameExistsErrorMessage.st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessage..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessageIfNecessary..st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParameterFrom..st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParametersIn..st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/initialize.st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/insertDefaults.st create mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/lastCharacterIsTab..st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/makeDataDictionary.st delete mode 100644 packages/IMAPClient-UI.package/ICLoginDialog.class/instance/parseStringToBool..st create mode 100644 packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildAddPasswordButton..st create mode 100644 packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildPasswordField..st delete mode 100644 packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/keyEvent..st create mode 100644 packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/loginWithPassword..st delete mode 100644 packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/README.md delete mode 100644 packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/class/initialize.st delete mode 100644 packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/methodProperties.json delete mode 100644 packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/properties.json delete mode 100644 screenshots/40866916-aaf887fc-6600-11e8-9dc8-847775df210c.png delete mode 100644 screenshots/40867006-45090ee8-6601-11e8-8e89-9d9f6a536792.png delete mode 100644 screenshots/40867029-7fddabc8-6601-11e8-9247-7df69755c6e9.png delete mode 100644 screenshots/40867038-95f11300-6601-11e8-9ce6-70933baae984.png delete mode 100644 screenshots/architecture.png diff --git a/.smalltalk.ston b/.smalltalk.ston index e8d96d2a..16c3b2c7 100644 --- a/.smalltalk.ston +++ b/.smalltalk.ston @@ -6,5 +6,10 @@ SmalltalkCISpec { #load : 'Tests', #platforms : [ #squeak ] } - ] + ], + #testing : { + #coverage : { + #packages : [ 'IMAPClient-Core', 'IMAPClient-Protocol' ] + } +} } diff --git a/.squot b/.squot index e56b826e..1815126d 100644 --- a/.squot +++ b/.squot @@ -2,5 +2,6 @@ OrderedDictionary { 'packages\/BaselineOfIMAPClient.package' : #SquotCypressCodeSerializer, 'packages\/IMAPClient-Core.package' : #SquotCypressCodeSerializer, 'packages\/IMAPClient-Tests.package' : #SquotCypressCodeSerializer, - 'packages\/IMAPClient-UI.package' : #SquotCypressCodeSerializer + 'packages\/IMAPClient-UI.package' : #SquotCypressCodeSerializer, + 'packages\/IMAPClient-Protocol.package' : #SquotCypressCodeSerializer } \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 2ca1acad..2506e1af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,9 @@ sudo: false smalltalk: - Squeak-5.1 + - Squeak-5.2 - Squeak-trunk matrix: allow_failures: + - smalltalk: Squeak-trunk diff --git a/README.md b/README.md index ab522c6b..f27635e6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ We proudly present our IMAP Client for Smalltalk Squeak, which we developed and improved during the summer term 2018 of the Software Engineering course. ## Installation -1. Get [Squeak 5.1 or later](http://www.squeak.org) +1. Get [Squeak 5.2 or later](http://www.squeak.org) 2. Load [Metacello](https://github.com/metacello/metacello) 3. Finally, load the package with the following command: @@ -14,29 +14,11 @@ Metacello new load. ``` -4. Afterwards load additional changes from Squeak-trunk: +4. Now you can setup a Menu Entry under "Apps" using `ICFolderDialog install`. -We needed to use some Squeak Methods, which werent available in Squeak-5.1, so we had to update them manually. -Please follow the following steps: - -1. Open Monticello Browser - -![](screenshots/40866916-aaf887fc-6600-11e8-9dc8-847775df210c.png) - -2. Select `http://source.squeak.org/trunk` on the right and press `open` - -![](screenshots/40867006-45090ee8-6601-11e8-8e89-9d9f6a536792.png) - -3. In the new window search for `Network`, select the newest commit and click `Load` - -![](screenshots/40867029-7fddabc8-6601-11e8-9247-7df69755c6e9.png) - -4. Do the Same for `Collections` - -![](screenshots/40867038-95f11300-6601-11e8-9ce6-70933baae984.png) ## Open -You can open the tool with the command `ICLoginDialog open: ICFolderDialog new` +You can open the tool with the command `ICFolderDialog new` or using a Menu Entry. ## Configuration You can customize the number of mails, which are fetched on the initial update process, and the number of mails which are loaded if you press the `Load older Mails` Button. Default are 100 and 10. Change `ICFolder>>numbersOfHeadersToFetch{AtLoaderOlderMail | AtTheBeginning}` @@ -61,7 +43,7 @@ You can open the tool with the command `ICLoginDialog open: ICFolderDialog new` - Display emails correctly (parse different encodings) ## Usage -Start the IMAP Client with `ICFolderDialog open`. Add new Accounts with the `+` Button. We tested the functionality with the HPI OWA Accounts. But other accounts should work fine. +Start the IMAP Client with `ICFolderDialog new`. Add new Accounts with the `+` Button. We tested the functionality with the HPI OWA Accounts. But other accounts should work fine. ``` Server: owa.hpi.de Port: 993 @@ -70,16 +52,12 @@ Password: xxxxxxx Use SSL: True ``` -## Safety -You don't have to be worried about your passwords, of course we won't save them. After closing the IMAP-Client and reopening it your are welcomed by a password prompt to re-enter your credentials. - -## Issue -There are some open issues left (we wanted to give you a good starting point ;-)) - just kidding, we didn't had enough time to fix all of these, so we left some in the Issues section. +## Security +Your password isn't stored on disk, but visible to your Squeak environment. After closing the IMAP-Client and reopening it your are welcomed by a password prompt to re-enter your credentials. -## Architecture - - ![](screenshots/architecture.png) +## Documentation +Hava a look at the GitHub Project Wiki to find more insights into the project. ## History 2016: Johannes Schneider, Maximilian Söchting, Julian Weise, Alexander Riese, Alexander Loeser @@ -88,6 +66,8 @@ There are some open issues left (we wanted to give you a good starting point ;-) 2018: Claudia Grabowski, Leonard Von Merzljak, Marius Walter, David Hennemann +2019: Paul Methfessel, Martin Taraz, Otto Kissig, Tim Garrels, Felix Rindt + ## Questions If you have any question, feel free to drop us a line :-) diff --git a/packages/BaselineOfIMAPClient.package/.squot-contents b/packages/BaselineOfIMAPClient.package/.squot-contents index 460ade30..4ad0c330 100644 --- a/packages/BaselineOfIMAPClient.package/.squot-contents +++ b/packages/BaselineOfIMAPClient.package/.squot-contents @@ -1,4 +1,4 @@ SquotTrackedObjectMetadata { #objectClassName : #PackageInfo, #serializer : #SquotCypressCodeSerializer -} +} \ No newline at end of file diff --git a/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/instance/baseline..st b/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/instance/baseline..st index b0fa26e0..264a13dc 100644 --- a/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/instance/baseline..st +++ b/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/instance/baseline..st @@ -8,8 +8,9 @@ baseline: spec package: 'JSON' with: [ spec file: 'JSON-ul.35'; repository: 'http://www.squeaksource.com/JSON' ]; package: 'IMAPClient-Core'; package: 'IMAPClient-UI'; + package: 'IMAPClient-Protocol'; package: 'IMAPClient-Tests' with: [ spec requires: #('default' 'libaries')]. spec - group: 'default' with: #('IMAPClient-UI' 'IMAPClient-Core'); + group: 'default' with: #('IMAPClient-UI' 'IMAPClient-Core' 'IMAPClient-Protocol'); group: 'Tests' with: #('IMAPClient-Tests'); group: 'libaries' with: #('JSON')] \ No newline at end of file diff --git a/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/methodProperties.json b/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/methodProperties.json index ce5a1867..8ad73731 100644 --- a/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/methodProperties.json +++ b/packages/BaselineOfIMAPClient.package/BaselineOfIMAPClient.class/methodProperties.json @@ -2,4 +2,4 @@ "class" : { }, "instance" : { - "baseline:" : "C.G. 7/25/2018 18:25" } } + "baseline:" : "pm 7/12/2019 20:46" } } diff --git a/packages/IMAPClient-Core.package/.squot-contents b/packages/IMAPClient-Core.package/.squot-contents index 460ade30..4ad0c330 100644 --- a/packages/IMAPClient-Core.package/.squot-contents +++ b/packages/IMAPClient-Core.package/.squot-contents @@ -1,4 +1,4 @@ SquotTrackedObjectMetadata { #objectClassName : #PackageInfo, #serializer : #SquotCypressCodeSerializer -} +} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/README.md b/packages/IMAPClient-Core.package/ICAccountInfo.class/README.md new file mode 100644 index 00000000..4e432a13 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/README.md @@ -0,0 +1 @@ +An ICAccountInfo is a dataobject holding information needed to connect to a server such as server address and user credentials. It also ensures basic IMAP datatype validity. diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialUsername.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialAccountName.st similarity index 57% rename from packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialUsername.st rename to packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialAccountName.st index 82ada6d7..06951f14 100644 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialUsername.st +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialAccountName.st @@ -1,4 +1,4 @@ constants -initialUsername +initialAccountName ^ String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialSsl.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialSsl.st new file mode 100644 index 00000000..2026b034 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/initialSsl.st @@ -0,0 +1,4 @@ +constants +initialSsl + + ^ true \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialPassword.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidHost.st similarity index 61% rename from packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialPassword.st rename to packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidHost.st index 3db644a7..5d3dc878 100644 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/initialPassword.st +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidHost.st @@ -1,4 +1,4 @@ constants -initialPassword +invalidHost ^ String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultPassword.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPassword.st similarity index 61% rename from packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultPassword.st rename to packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPassword.st index 41bafa15..9aa41440 100644 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultPassword.st +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPassword.st @@ -1,4 +1,4 @@ constants -defaultPassword +invalidPassword ^ String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPort.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPort.st new file mode 100644 index 00000000..00a17519 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidPort.st @@ -0,0 +1,4 @@ +constants +invalidPort + + ^ -1 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultUsername.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidUsername.st similarity index 61% rename from packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultUsername.st rename to packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidUsername.st index 7cd0d2e8..d22aaf19 100644 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/defaultUsername.st +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/invalidUsername.st @@ -1,4 +1,4 @@ constants -defaultUsername +invalidUsername ^ String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/class/newWith..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/newWith..st new file mode 100644 index 00000000..ed2fecbd --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/class/newWith..st @@ -0,0 +1,10 @@ +instance creation +newWith: aDataDictionary + + ^ self new + accountName: (aDataDictionary at: 'accountName'); + host: (aDataDictionary at: 'address'); + port: ((aDataDictionary at: 'port') asNumber); + username: (aDataDictionary at: 'username'); + password: (aDataDictionary at: 'password'); + ssl: (aDataDictionary at: 'ssl') \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName..st new file mode 100644 index 00000000..788db416 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName..st @@ -0,0 +1,4 @@ +accessing +accountName: aString + + accountName := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName.st new file mode 100644 index 00000000..8ce4335f --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/accountName.st @@ -0,0 +1,4 @@ +accessing +accountName + + ^ accountName ifNil: [accountName := self class initialAccountName] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/asDictionary.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/asDictionary.st new file mode 100644 index 00000000..96e81de2 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/asDictionary.st @@ -0,0 +1,14 @@ +accessing +asDictionary + + | dict | + dict := Dictionary new. + dict at: 'ssl' put: self ssl; + at: 'accountName' put: self accountName; + at: 'address' put: self host; + at: 'port' put: self port; + at: 'username' put: self username; + at: 'password' put: self password. + + ^ dict + \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/canConvert..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/canConvert..st new file mode 100644 index 00000000..3d581a1b --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/canConvert..st @@ -0,0 +1,4 @@ +validation +canConvert: aString + + ^ ('"|\\' asRegex matchesIn: aString) isEmpty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidServerInfo.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidServerInfo.st new file mode 100644 index 00000000..3bf1654c --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidServerInfo.st @@ -0,0 +1,5 @@ +validation +hasValidServerInfo + + ^ self host ~= self class invalidHost + and: [self port ~= self class invalidPort] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidUserInfo.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidUserInfo.st new file mode 100644 index 00000000..0f587741 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/hasValidUserInfo.st @@ -0,0 +1,5 @@ +validation +hasValidUserInfo + + ^ self username ~= self class invalidUsername + and: [self password ~= self class invalidPassword] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host..st new file mode 100644 index 00000000..8e89907c --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host..st @@ -0,0 +1,4 @@ +accessing +host: aString + + host := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host.st new file mode 100644 index 00000000..d37f42d0 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/host.st @@ -0,0 +1,4 @@ +accessing +host + + ^ host ifNil: [host := self class invalidHost] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/isValid.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/isValid.st new file mode 100644 index 00000000..04d5e66f --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/isValid.st @@ -0,0 +1,4 @@ +validation +isValid + + ^ self hasValidServerInfo and: [self hasValidUserInfo] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password..st new file mode 100644 index 00000000..70c69d7f --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password..st @@ -0,0 +1,5 @@ +accessing +password: aString + + (self canConvert: aString) ifFalse: [self error: (aString, ' is not IMAP convertable')]. + password := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password.st new file mode 100644 index 00000000..395fe90d --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/password.st @@ -0,0 +1,4 @@ +accessing +password + + ^ password ifNil: [password := self class invalidPassword] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/passwordAsIMAPString.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/passwordAsIMAPString.st new file mode 100644 index 00000000..b31f189a --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/passwordAsIMAPString.st @@ -0,0 +1,4 @@ +accessing +passwordAsIMAPString + + ^ '"', self password, '"' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port..st new file mode 100644 index 00000000..776415e4 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port..st @@ -0,0 +1,4 @@ +accessing +port: aNumber + + port := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port.st new file mode 100644 index 00000000..1cc2b951 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/port.st @@ -0,0 +1,4 @@ +accessing +port + + ^ port ifNil: [port := self class invalidPort] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/printOn..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/printOn..st new file mode 100644 index 00000000..1ef3c8d5 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/printOn..st @@ -0,0 +1,11 @@ +printing +printOn: aStream + + aStream nextPut: ({ + self accountName. + self host. + self port. + self username. + self password. + self ssl + } joinSeparatedBy: ' ') \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl..st new file mode 100644 index 00000000..1e08ecbc --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl..st @@ -0,0 +1,4 @@ +accessing +ssl: aBool + + ssl := aBool \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl.st new file mode 100644 index 00000000..cf557743 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/ssl.st @@ -0,0 +1,4 @@ +accessing +ssl + + ^ ssl ifNil: [ssl := self class initialSsl] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username..st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username..st new file mode 100644 index 00000000..2d2a64ef --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username..st @@ -0,0 +1,5 @@ +accessing +username: aString + + (self canConvert: aString) ifFalse: [self error: (aString, ' is not IMAP convertable')]. + username := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username.st new file mode 100644 index 00000000..e179e2a8 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/username.st @@ -0,0 +1,4 @@ +accessing +username + + ^ username ifNil: [username := self class invalidUsername] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/usernameAsIMAPString.st b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/usernameAsIMAPString.st new file mode 100644 index 00000000..a15b58c9 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/instance/usernameAsIMAPString.st @@ -0,0 +1,4 @@ +accessing +usernameAsIMAPString + + ^ '"', self username, '"' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAccountInfo.class/methodProperties.json b/packages/IMAPClient-Core.package/ICAccountInfo.class/methodProperties.json new file mode 100644 index 00000000..0d775579 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/methodProperties.json @@ -0,0 +1,30 @@ +{ + "class" : { + "initialAccountName" : "tg 7/10/2019 17:43", + "initialSsl" : "tg 7/10/2019 17:43", + "invalidHost" : "tg 7/10/2019 20:08", + "invalidPassword" : "tg 7/10/2019 20:10", + "invalidPort" : "tg 7/10/2019 20:09", + "invalidUsername" : "tg 7/10/2019 20:10", + "newWith:" : "mt 7/26/2019 15:19" }, + "instance" : { + "accountName" : "tg 7/10/2019 20:20", + "accountName:" : "tg 7/10/2019 17:35", + "asDictionary" : "tg 7/18/2019 23:07", + "canConvert:" : "fr 7/26/2019 15:37", + "hasValidServerInfo" : "tg 7/15/2019 12:08", + "hasValidUserInfo" : "tg 7/15/2019 12:08", + "host" : "tg 7/10/2019 20:06", + "host:" : "tg 7/10/2019 17:11", + "isValid" : "fr 7/26/2019 15:57", + "password" : "tg 7/15/2019 12:11", + "password:" : "tg 7/10/2019 17:18", + "passwordAsIMAPString" : "tg 7/10/2019 17:18", + "port" : "tg 7/10/2019 20:09", + "port:" : "tg 7/10/2019 17:11", + "printOn:" : "fr 7/26/2019 16:52", + "ssl" : "tg 7/10/2019 20:21", + "ssl:" : "tg 7/10/2019 17:34", + "username" : "fr 7/26/2019 15:37", + "username:" : "tg 7/10/2019 17:18", + "usernameAsIMAPString" : "tg 7/10/2019 17:18" } } diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/properties.json b/packages/IMAPClient-Core.package/ICAccountInfo.class/properties.json similarity index 57% rename from packages/IMAPClient-Core.package/ICAuthenticationInfo.class/properties.json rename to packages/IMAPClient-Core.package/ICAccountInfo.class/properties.json index 5f11aa74..f193f3d7 100644 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/properties.json +++ b/packages/IMAPClient-Core.package/ICAccountInfo.class/properties.json @@ -4,11 +4,15 @@ ], "classvars" : [ ], - "commentStamp" : "ms 7/28/2016 11:38", + "commentStamp" : "tg 7/15/2019 12:14", "instvars" : [ + "accountName", + "host", + "port", "username", - "password" ], - "name" : "ICAuthenticationInfo", + "password", + "ssl" ], + "name" : "ICAccountInfo", "pools" : [ ], "super" : "Object", diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/README.md b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/README.md deleted file mode 100644 index 17717e67..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/README.md +++ /dev/null @@ -1 +0,0 @@ -An ICAuthenticationInfo is a wrapper for a username-password-combination. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/for.using..st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/for.using..st deleted file mode 100644 index c4d14481..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/class/for.using..st +++ /dev/null @@ -1,6 +0,0 @@ -instance creation -for: username using: password - - ^ self new - username: username; - password: password \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/initialize.st deleted file mode 100644 index 1464d999..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/initialize.st +++ /dev/null @@ -1,5 +0,0 @@ -initialization -initialize - - self username: self class initialUsername. - self password: self class initialPassword \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/isValid.st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/isValid.st deleted file mode 100644 index 527a02a9..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/isValid.st +++ /dev/null @@ -1,4 +0,0 @@ -validation -isValid - - ^ self username ~= self class initialUsername and: [self password ~= self class initialPassword] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password..st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password..st deleted file mode 100644 index 5e5867f8..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -password: anObject - - password := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password.st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password.st deleted file mode 100644 index 8cd21fde..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/password.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -password - - ^ password \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username..st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username..st deleted file mode 100644 index 91b4ea30..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -username: anObject - - username := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username.st b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username.st deleted file mode 100644 index 12b3e01f..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/instance/username.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -username - - ^ username \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/methodProperties.json b/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/methodProperties.json deleted file mode 100644 index 6c5270a1..00000000 --- a/packages/IMAPClient-Core.package/ICAuthenticationInfo.class/methodProperties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "class" : { - "defaultPassword" : "ms 5/17/2016 09:34", - "defaultUsername" : "ms 5/17/2016 09:34", - "for:using:" : "js 5/15/2016 16:38", - "initialPassword" : "jwe 6/15/2016 15:47", - "initialUsername" : "jwe 6/15/2016 15:47" }, - "instance" : { - "initialize" : "jwe 6/15/2016 15:48", - "isValid" : "C.G. 7/25/2018 13:46", - "password" : "js 5/15/2016 16:03", - "password:" : "js 5/15/2016 16:03", - "username" : "js 5/15/2016 16:03", - "username:" : "js 5/15/2016 16:03" } } diff --git a/packages/IMAPClient-Core.package/ICEmail.class/README.md b/packages/IMAPClient-Core.package/ICEmail.class/README.md index 4ae02963..2ed70cc3 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/README.md +++ b/packages/IMAPClient-Core.package/ICEmail.class/README.md @@ -4,4 +4,5 @@ Instance Variables body: The body of the ICEmail. ICEmail>>retrieveBody needs to be called to fill the body. folder: The ICFolder this ICEmail resides in. header: The header of the ICEmail. This gets parsed into the instance variables date, from, to and subject. + date: https://tools.ietf.org/html/rfc2822#page-14, date represents the local time and the zone is the timezone information. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/asString.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/asString.st index 2a7a6dfa..111c86ac 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/asString.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/asString.st @@ -1,4 +1,4 @@ -print +converting asString ^ self headerAsString, String cr, String cr, self bodyAsString, String cr \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/body..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/body..st index 8291323d..05251127 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/body..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/body..st @@ -1,4 +1,4 @@ accessing -body: anObject +body: aString - body := anObject \ No newline at end of file + body := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/body.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/body.st index d7691e1e..9bac17a8 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/body.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/body.st @@ -1,4 +1,4 @@ accessing body - ^ body \ No newline at end of file + ^ body ifNil: [body := String empty] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding..st index f645b75a..10b2baa5 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding..st @@ -1,4 +1,4 @@ -accessing +accessing-header contentTransferEncoding: aContentTransferEncoding self header at: #contentTransferEncoding put: aContentTransferEncoding \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding.st index 43e32ef7..c3041af7 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentTransferEncoding.st @@ -1,4 +1,4 @@ -accessing +accessing-header contentTransferEncoding ^ self header at: #contentTransferEncoding ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType..st index d66deccd..16c6b2e7 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType..st @@ -1,4 +1,4 @@ -accessing +accessing-header contentType: aContentType self header at: #contentType put: aContentType \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType.st index daacfc96..963be2a1 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/contentType.st @@ -1,4 +1,4 @@ -accessing +accessing-header contentType ^ self header at: #contentType ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/date..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/date..st index 2a870116..ed9f9c10 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/date..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/date..st @@ -1,4 +1,4 @@ -accessing +accessing-header date: aDate self header at: #date put: aDate \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/date.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/date.st index ca080c15..5c167a0f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/date.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/date.st @@ -1,4 +1,4 @@ -accessing +accessing-header date ^ self header at: #date ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/getDateFormatted.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateFormatted.st similarity index 55% rename from packages/IMAPClient-Core.package/ICEmail.class/instance/getDateFormatted.st rename to packages/IMAPClient-Core.package/ICEmail.class/instance/dateFormatted.st index eb650d25..2a3fc494 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/getDateFormatted.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateFormatted.st @@ -1,15 +1,9 @@ accessing -getDateFormatted - - "Use date in header and convert it into seconds with MailMessage timeFrom Method. - Add localOffset to keep it in LocalTime. - Need to add 1.1.1980 because DateAndTime starts there." +dateFormatted | date formatted | - - self date = '' ifTrue: [^'']. - - date := DateAndTime fromSeconds: self getDateInSeconds. + + date := DateAndTime fromSeconds: self dateInSecondsSinceSqueakEpoch + DateAndTime localOffset asSeconds. formatted := ((date dayOfMonth asString padded: #left to: 2 with: $0) ,'.', (date month asString padded: #left to: 2 with: $0), '.', diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSince1980.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSince1980.st new file mode 100644 index 00000000..78318af8 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSince1980.st @@ -0,0 +1,4 @@ +accessing +dateInSecondsSince1980 + + ^ MailMessage new timeFrom: self date diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSinceSqueakEpoch.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSinceSqueakEpoch.st new file mode 100644 index 00000000..45d81001 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/dateInSecondsSinceSqueakEpoch.st @@ -0,0 +1,4 @@ +accessing +dateInSecondsSinceSqueakEpoch + + ^ self dateInSecondsSince1980 + (DateAndTime year: 1980 day: 1) asSeconds diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmail.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmail.st index 4adeb124..64725985 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmail.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmail.st @@ -1,8 +1,8 @@ -action +endpoint interaction deleteEmail | anICEndPoint | - anICEndPoint := folder endpoint select: self folder path. + anICEndPoint := self folder endpoint select: self folder path. self deleteEmailFromDisk. anICEndPoint deleteEmail: self \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmailFromDisk.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmailFromDisk.st index 38bd4f1a..a9b94f2f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmailFromDisk.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleteEmailFromDisk.st @@ -1,5 +1,5 @@ action deleteEmailFromDisk - folder emails remove: self. - FileDirectory default deleteFileNamed: (self maildirFileName, FileDirectory slash, self uid) \ No newline at end of file + self folder removeMail: self. + FileDirectory default deleteFileNamed: (self maildirFileName, FileDirectory slash, self uniqueID) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted..st index 2c9cb4a5..52f4a605 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted..st @@ -1,4 +1,4 @@ -accessing +accessing-header deleted: aFlag self header at: #deleted put: aFlag \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted.st index 5978965f..5bffe32f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/deleted.st @@ -1,4 +1,4 @@ -accessing +accessing-header deleted ^ self header at: #deleted ifAbsent: [false] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/expungeEmails.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/expungeEmails.st index 282b19ed..681989ea 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/expungeEmails.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/expungeEmails.st @@ -1,8 +1,8 @@ -action +endpoint interaction expungeEmails | anICEndPoint | - anICEndPoint := folder endpoint select: self folder path. + anICEndPoint := self folder endpoint select: self folder path. anICEndPoint expungeEmail. self deleteEmailFromDisk \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged..st index c876b3ac..56b1fe75 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged..st @@ -1,4 +1,4 @@ -accessing +accessing-header flagged: aFlag self header at: #flagged put: aFlag \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged.st index 29a4e613..cf3e8a2b 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/flagged.st @@ -1,4 +1,4 @@ -accessing +accessing-header flagged ^ self header at: #flagged ifAbsent: false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/folder..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/folder..st index 2cf1fce1..fb6cc2a9 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/folder..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/folder..st @@ -1,4 +1,4 @@ accessing -folder: anObject +folder: anICFolder - folder := anObject \ No newline at end of file + folder := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/from..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/from..st index 6a54ae0a..6344ff62 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/from..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/from..st @@ -1,4 +1,4 @@ -accessing +accessing-header from: aSender self header at: #from put: aSender \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/from.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/from.st index b079ccf2..eb78106d 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/from.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/from.st @@ -1,4 +1,4 @@ -accessing +accessing-header from ^ self header at: #from ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/getDateInSeconds.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/getDateInSeconds.st deleted file mode 100644 index ae7428b2..00000000 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/getDateInSeconds.st +++ /dev/null @@ -1,12 +0,0 @@ -accessing -getDateInSeconds - - "Use date in header and convert it into seconds with MailMessage timeFrom Method. - Add localOffset to keep it in LocalTime. - Need to add 1.1.1980 because DateAndTime starts there." - - self date = '' ifTrue: [^0]. - - ^ (MailMessage new timeFrom: self date) - + (DateAndTime localOffset asSeconds) - + ((Date newDay: 1 year: 1980) asSeconds) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/header..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/header..st index c46e447e..a1ed9246 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/header..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/header..st @@ -1,4 +1,4 @@ accessing -header: anObject +header: aDictionary - header := anObject \ No newline at end of file + header := aDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/header.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/header.st index 51873713..73611b42 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/header.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/header.st @@ -1,4 +1,4 @@ accessing header - ^ header \ No newline at end of file + ^ header ifNil: [header := Dictionary new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/initialize.st deleted file mode 100644 index 75867500..00000000 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/initialize.st +++ /dev/null @@ -1,6 +0,0 @@ -initialization -initialize - - self - header: Dictionary new; - body: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/isFlaggable.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/isFlaggable.st deleted file mode 100644 index 2f8b96d1..00000000 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/isFlaggable.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -isFlaggable - - ^ true \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/messageID..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/messageID..st index bb160df8..5758a428 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/messageID..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/messageID..st @@ -1,4 +1,4 @@ accessing -messageID: anObject +messageID: aNumber - messageID := anObject \ No newline at end of file + messageID := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/modifyFlag..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/modifyFlag..st index 8df7cb40..3e75c10f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/modifyFlag..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/modifyFlag..st @@ -1,4 +1,4 @@ -fetch body +endpoint interaction modifyFlag: aFlag | anICEndPoint | diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/moveEmail..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/moveEmail..st index 4099fbcb..860deeaf 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/moveEmail..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/moveEmail..st @@ -1,8 +1,8 @@ -action +endpoint interaction moveEmail: aFolder | anICEndPoint | - anICEndPoint := folder endpoint select: self folder path. + anICEndPoint := self folder endpoint select: self folder path. self deleteEmailFromDisk. anICEndPoint moveEmail: self to: aFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveBody.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveBody.st index 252b20aa..f57526a0 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveBody.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveBody.st @@ -1,16 +1,10 @@ -fetch body +endpoint interaction retrieveBody - | mailbody | - self folder endpoint select: self folder path; fillBodyFor: self. - - "add the Content-Type to mail body --> necessary for correct parsing" - - mailbody := 'Content-Type: ', (self contentType), Character cr, + + ^'Content-Type: ', (self contentType), Character cr, 'Content-Transfer-Encoding: ', self contentTransferEncoding, - Character cr, Character cr, self body. - - ^ mailbody \ No newline at end of file + Character cr, Character cr, self body \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveFlags.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveFlags.st index e69a5a3f..2941a06f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveFlags.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/retrieveFlags.st @@ -1,4 +1,4 @@ -fetch body +endpoint interaction retrieveFlags - self folder retrieveFlagsFrom: self uid to: self uid \ No newline at end of file + self folder retrieveFlagsFrom: self uniqueID to: self uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/saveInMaildir.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/saveInMaildir.st index a5912988..4caafcc5 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/saveInMaildir.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/saveInMaildir.st @@ -4,4 +4,4 @@ saveInMaildir ^ ICFileReadWriter new write: self in: self maildirFileName - as: self uid \ No newline at end of file + as: self uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/seen..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/seen..st index 8fcc4300..c9e0215e 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/seen..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/seen..st @@ -1,4 +1,4 @@ -accessing +accessing-header seen: aFlag self header at: #seen put: aFlag \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/seen.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/seen.st index 6d78c663..39577f5c 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/seen.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/seen.st @@ -1,4 +1,4 @@ -accessing +accessing-header seen ^ self header at: #seen ifAbsent: true \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/subject..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/subject..st index 43fac537..423b57c6 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/subject..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/subject..st @@ -1,4 +1,4 @@ -accessing +accessing-header subject: aSubject self header at: #subject put: aSubject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/subject.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/subject.st index b844d34b..7257746c 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/subject.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/subject.st @@ -1,4 +1,4 @@ -accessing +accessing-header subject - ^ self header at: #subject ifAbsent: self defaultSubject \ No newline at end of file + ^ self header at: #subject ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/to..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/to..st index 29c75489..7774415f 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/to..st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/to..st @@ -1,4 +1,4 @@ -accessing +accessing-header to: aReceiver self header at: #to put: aReceiver \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/to.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/to.st index 1b7bce9f..fae238b0 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/to.st +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/to.st @@ -1,4 +1,4 @@ -accessing +accessing-header to ^ self header at: #to ifAbsent: String empty \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/uid..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/uid..st deleted file mode 100644 index aae87864..00000000 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/uid..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -uid: aString - - uid := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/uid.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/uid.st deleted file mode 100644 index f4afeb61..00000000 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/uid.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -uid - - ^ uid ifNil: [uid := 0] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID..st b/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID..st new file mode 100644 index 00000000..06ed7317 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID..st @@ -0,0 +1,4 @@ +accessing +uniqueID: aString + + uniqueID := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID.st b/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID.st new file mode 100644 index 00000000..266fee0d --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEmail.class/instance/uniqueID.st @@ -0,0 +1,4 @@ +accessing +uniqueID + + ^ uniqueID ifNil: [uniqueID := 0] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/methodProperties.json b/packages/IMAPClient-Core.package/ICEmail.class/methodProperties.json index 4a177548..0cf78523 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/methodProperties.json +++ b/packages/IMAPClient-Core.package/ICEmail.class/methodProperties.json @@ -3,8 +3,8 @@ }, "instance" : { "asString" : "AR 7/28/2016 14:06", - "body" : "js 6/14/2016 10:37", - "body:" : "js 6/14/2016 10:37", + "body" : "pm 6/3/2019 21:27", + "body:" : "pm 6/9/2019 16:34", "bodyAsString" : "AR 7/28/2016 13:58", "contentTransferEncoding" : "C.G. 7/25/2018 13:46", "contentTransferEncoding:" : "C.G. 7/25/2018 13:46", @@ -12,40 +12,38 @@ "contentType:" : "C.G. 7/25/2018 13:46", "date" : "C.G. 7/25/2018 13:46", "date:" : "C.G. 7/25/2018 13:46", - "defaultSubject" : "ms 6/28/2016 10:08", - "deleteEmail" : "C.G. 7/12/2018 08:07", - "deleteEmailFromDisk" : "C.G. 7/25/2018 13:46", + "dateFormatted" : "tg 7/19/2019 11:31", + "dateInSecondsSince1980" : "tg 7/26/2019 21:04", + "dateInSecondsSinceSqueakEpoch" : "tg 7/19/2019 10:35", + "deleteEmail" : "fr 7/26/2019 15:41", + "deleteEmailFromDisk" : "tg 7/26/2019 21:59", "deleted" : "DH 7/19/2018 21:58", "deleted:" : "DH 7/19/2018 19:43", - "expungeEmails" : "C.G. 7/25/2018 13:47", + "expungeEmails" : "tg 7/26/2019 13:57", "flagged" : "C.G. 7/25/2018 13:47", "flagged:" : "C.G. 7/25/2018 13:47", "folder" : "ms 7/10/2016 13:31", - "folder:" : "ms 7/10/2016 13:31", + "folder:" : "pm 6/14/2019 14:44", "from" : "C.G. 7/25/2018 13:47", "from:" : "C.G. 7/25/2018 13:47", - "getDateFormatted" : "C.G. 7/12/2018 08:08", - "getDateInSeconds" : "C.G. 7/12/2018 08:08", - "header" : "js 6/14/2016 10:39", - "header:" : "js 6/14/2016 10:39", + "header" : "pm 6/3/2019 21:28", + "header:" : "pm 6/9/2019 16:37", "headerAsString" : "C.G. 7/25/2018 13:47", - "initialize" : "mw 5/25/2018 21:46", - "isFlaggable" : "lvm 5/23/2018 13:14", "maildirFileName" : "C.G. 7/25/2018 13:48", "messageID" : "ms 7/10/2016 13:59", - "messageID:" : "ms 7/10/2016 13:59", + "messageID:" : "pm 6/9/2019 16:41", "minimalHeaderAsString" : "DH 6/9/2018 15:31", "modifyFlag:" : "C.G. 7/25/2018 13:48", - "moveEmail:" : "C.G. 7/25/2018 13:48", + "moveEmail:" : "fr 7/26/2019 15:41", "open" : "lvm 5/20/2018 20:10", - "retrieveBody" : "C.G. 7/25/2018 13:48", - "retrieveFlags" : "C.G. 7/25/2018 13:49", - "saveInMaildir" : "C.G. 7/25/2018 13:49", + "retrieveBody" : "ok 7/26/2019 21:07", + "retrieveFlags" : "pm 6/2/2019 15:58", + "saveInMaildir" : "pm 6/2/2019 15:58", "seen" : "C.G. 7/25/2018 13:49", "seen:" : "C.G. 7/25/2018 13:49", - "subject" : "ms 6/28/2016 10:08", + "subject" : "tg 7/19/2019 11:45", "subject:" : "C.G. 7/25/2018 13:49", "to" : "C.G. 7/25/2018 13:49", "to:" : "C.G. 7/25/2018 13:49", - "uid" : "lvm 7/4/2018 11:17", - "uid:" : "C.G. 7/25/2018 13:49" } } + "uniqueID" : "pm 6/2/2019 15:58", + "uniqueID:" : "pm 6/2/2019 15:58" } } diff --git a/packages/IMAPClient-Core.package/ICEmail.class/properties.json b/packages/IMAPClient-Core.package/ICEmail.class/properties.json index c91e5b1f..1c89ec08 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/properties.json +++ b/packages/IMAPClient-Core.package/ICEmail.class/properties.json @@ -4,13 +4,13 @@ ], "classvars" : [ ], - "commentStamp" : "ms 7/28/2016 11:29", + "commentStamp" : "tg 7/19/2019 10:33", "instvars" : [ "body", "header", "folder", "messageID", - "uid" ], + "uniqueID" ], "name" : "ICEmail", "pools" : [ ], diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/accountFolderHashRelevantCharacters.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/accountFolderHashRelevantCharacters.st new file mode 100644 index 00000000..36e94b9e --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/accountFolderHashRelevantCharacters.st @@ -0,0 +1,4 @@ +constants +accountFolderHashRelevantCharacters + + ^ 10 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/addConfiguration..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/addConfiguration..st new file mode 100644 index 00000000..e38e9195 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/addConfiguration..st @@ -0,0 +1,5 @@ +storage +addConfiguration: aDictionary + + (self checkValidConfiguration: aDictionary) ifFalse: [self error: 'Not a valid dataDictionary']. + self basicConnectionConfigurations add: aDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/asProtocolQuote..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/asProtocolQuote..st deleted file mode 100644 index 1ff30f1b..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/asProtocolQuote..st +++ /dev/null @@ -1,4 +0,0 @@ -commands -asProtocolQuote: message - - ^ self protocolQuote, message, self protocolQuote \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/basicConnectionConfigurations.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/basicConnectionConfigurations.st new file mode 100644 index 00000000..af1d215e --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/basicConnectionConfigurations.st @@ -0,0 +1,4 @@ +storage +basicConnectionConfigurations + + ^ ConnectionConfigurations ifNil: [ConnectionConfigurations := OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/checkValidConfiguration..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/checkValidConfiguration..st new file mode 100644 index 00000000..05cbcc23 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/checkValidConfiguration..st @@ -0,0 +1,8 @@ +storage +checkValidConfiguration: aDataDictionary + + ^ (aDataDictionary includesKey: 'username') and: + (aDataDictionary includesKey: 'port') and: + (aDataDictionary includesKey: 'address') and: + (aDataDictionary includesKey: 'accountName') and: + (aDataDictionary includesKey: 'ssl') \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/clearConfigurations.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/clearConfigurations.st new file mode 100644 index 00000000..f8a9c85c --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/clearConfigurations.st @@ -0,0 +1,4 @@ +storage +clearConfigurations + + self connectionConfigurations: nil \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandFailed.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandFailed.st deleted file mode 100644 index 7bef7901..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandFailed.st +++ /dev/null @@ -1,4 +0,0 @@ -responses -commandFailed - - ^ {self protocolCommandStart . 'NO'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandSucceeded.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandSucceeded.st deleted file mode 100644 index d57123f9..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/commandSucceeded.st +++ /dev/null @@ -1,4 +0,0 @@ -responses -commandSucceeded - - ^ {self protocolCommandStart . 'OK'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations..st new file mode 100644 index 00000000..6b13ac97 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations..st @@ -0,0 +1,4 @@ +storage +connectionConfigurations: anOrderedCollection + + ConnectionConfigurations := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations.st new file mode 100644 index 00000000..5c83a0df --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/connectionConfigurations.st @@ -0,0 +1,4 @@ +storage +connectionConfigurations + + ^ self basicConnectionConfigurations copy \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/defaultStreamClass.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/defaultStreamClass.st new file mode 100644 index 00000000..42afc49a --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/defaultStreamClass.st @@ -0,0 +1,4 @@ +constants +defaultStreamClass + + ^ SocketStream \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/deleteEmail..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/deleteEmail..st deleted file mode 100644 index 153c95b2..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/deleteEmail..st +++ /dev/null @@ -1,4 +0,0 @@ -commands -deleteEmail: messageId - - ^ {self protocolCommandStart . 'STORE' . messageId . '+FLAGS \Deleted'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorBadParameter.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorBadParameter.st deleted file mode 100644 index f793a1d0..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorBadParameter.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorBadParameter - - ^ 'provided parameter not understood' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorInvalidAuthenticationConfiguration.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorInvalidAuthenticationConfiguration.st deleted file mode 100644 index 241a1d12..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorInvalidAuthenticationConfiguration.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorInvalidAuthenticationConfiguration - - ^ 'the provided authentication information is not valid' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorLoginFailed.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorLoginFailed.st deleted file mode 100644 index 92d1b855..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorLoginFailed.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorLoginFailed - - ^ 'authentication failed' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoConnection.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoConnection.st deleted file mode 100644 index 715d80fb..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoConnection.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorNoConnection - - ^ 'connection not established' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoPasswordSet.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoPasswordSet.st deleted file mode 100644 index baffc26e..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoPasswordSet.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorNoPasswordSet - - ^ 'no password set' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoUsernameSet.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoUsernameSet.st deleted file mode 100644 index 03790ee7..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/errorNoUsernameSet.st +++ /dev/null @@ -1,4 +0,0 @@ -errors -errorNoUsernameSet - - ^ 'username not set' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/expungeEmail.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/expungeEmail.st deleted file mode 100644 index 347c6c2b..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/expungeEmail.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -expungeEmail - - ^ {self protocolCommandStart . 'EXPUNGE'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchBodyCommand..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchBodyCommand..st deleted file mode 100644 index e97f27b9..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchBodyCommand..st +++ /dev/null @@ -1,4 +0,0 @@ -commands -fetchBodyCommand: messageId - - ^ {self protocolCommandStart . 'FETCH' . messageId . 'body[TEXT]'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchFlagsWithUIDRange.to..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchFlagsWithUIDRange.to..st deleted file mode 100644 index 3ba017d5..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchFlagsWithUIDRange.to..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -fetchFlagsWithUIDRange: aBeginUID to: anEndUID - - ^ {self protocolCommandStart . 'UID FETCH' . (aBeginUID asString, ':', anEndUID asString) . '(FLAGS)'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchHeadersWithUIDRange.to..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchHeadersWithUIDRange.to..st deleted file mode 100644 index a5a3645f..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/fetchHeadersWithUIDRange.to..st +++ /dev/null @@ -1,7 +0,0 @@ -commands -fetchHeadersWithUIDRange: aBeginId to: anEndId - - ^ {self protocolCommandStart . 'UID FETCH' . - (aBeginId asString, ':', anEndId asString) . - '(FLAGS BODY.PEEK[HEADER.FIELDS (from to subject date content-type content-transfer-encoding)])'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/getAllUIDs.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/getAllUIDs.st deleted file mode 100644 index 638abf8e..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/getAllUIDs.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -getAllUIDs - - ^ {self protocolCommandStart . 'UID SEARCH ALL'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/lastHeaderLine.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/lastHeaderLine.st deleted file mode 100644 index 81ee30e7..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/lastHeaderLine.st +++ /dev/null @@ -1,4 +0,0 @@ -constants -lastHeaderLine - - ^ ')' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/listCommand.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/listCommand.st deleted file mode 100644 index d8c17b73..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/listCommand.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -listCommand - - ^ {self protocolCommandStart . 'LIST'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/loginCommand.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/loginCommand.st deleted file mode 100644 index 331b5a37..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/loginCommand.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -loginCommand - - ^ {self protocolCommandStart . 'LOGIN'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/logoutCommand.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/logoutCommand.st deleted file mode 100644 index 83f7ace2..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/logoutCommand.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -logoutCommand - - ^ {self protocolCommandStart . 'LOGOUT'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/moveEmail.to..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/moveEmail.to..st deleted file mode 100644 index dbb5a520..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/moveEmail.to..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -moveEmail: messageId to: aFolder - - ^ {self protocolCommandStart . 'MOVE' . messageId . aFolder} joinSeparatedBy: self protocolBlank - diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/noopCommand.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/noopCommand.st deleted file mode 100644 index 737086cd..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/noopCommand.st +++ /dev/null @@ -1,4 +0,0 @@ -commands -noopCommand - - ^ {self protocolCommandStart . 'NOOP'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolError.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolError.st deleted file mode 100644 index 611d864c..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolError.st +++ /dev/null @@ -1,4 +0,0 @@ -responses -protocolError - - ^ {self protocolCommandStart . 'BAD'} joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/refreshConnectionIntervalInSeconds.st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/refreshConnectionIntervalInSeconds.st new file mode 100644 index 00000000..8a4ec765 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/refreshConnectionIntervalInSeconds.st @@ -0,0 +1,4 @@ +constants +refreshConnectionIntervalInSeconds + + ^ 60 * 10 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/removeConfiguration..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/removeConfiguration..st new file mode 100644 index 00000000..31ea5484 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/class/removeConfiguration..st @@ -0,0 +1,4 @@ +storage +removeConfiguration: aDictionary + + ^ self basicConnectionConfigurations remove: aDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagFlagged..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagFlagged..st deleted file mode 100644 index 8a93e181..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagFlagged..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -resetFlagFlagged: messageId - - ^ {self protocolCommandStart . 'STORE' . messageId . '-FLAGS \Flagged'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagSeen..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagSeen..st deleted file mode 100644 index 4e227e30..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/resetFlagSeen..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -resetFlagSeen: messageId - - ^ {self protocolCommandStart . 'STORE' . messageId . '-FLAGS \Seen'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/selectCommand..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/selectCommand..st deleted file mode 100644 index 80f32bda..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/selectCommand..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -selectCommand: aFolder - - ^ {self protocolCommandStart . 'SELECT' . aFolder} joinSeparatedBy: self protocolBlank - \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagFlagged..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagFlagged..st deleted file mode 100644 index 85c11ec8..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagFlagged..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -setFlagFlagged: messageId - - ^ {self protocolCommandStart . 'STORE' . messageId . '+FLAGS \Flagged'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagSeen..st b/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagSeen..st deleted file mode 100644 index a47a3638..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/setFlagSeen..st +++ /dev/null @@ -1,5 +0,0 @@ -commands -setFlagSeen: messageId - - ^ {self protocolCommandStart . 'STORE' . messageId . '+FLAGS \Seen'} - joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo..st new file mode 100644 index 00000000..a39c49ab --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo..st @@ -0,0 +1,4 @@ +accessing +accountInfo: anICAccountInfo + + accountInfo := anICAccountInfo \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo.st new file mode 100644 index 00000000..732e13c9 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/accountInfo.st @@ -0,0 +1,4 @@ +accessing +accountInfo + + ^ accountInfo ifNil: [accountInfo := ICAccountInfo new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asAccountInfoDictionary.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asAccountInfoDictionary.st new file mode 100644 index 00000000..13336518 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asAccountInfoDictionary.st @@ -0,0 +1,4 @@ +accessing +asAccountInfoDictionary + + ^ self accountInfo asDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asDictionary.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asDictionary.st deleted file mode 100644 index 9bd83ad9..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/asDictionary.st +++ /dev/null @@ -1,17 +0,0 @@ -accessing -asDictionary - - "returns endpoint data as dictionary" - - | dataDictionary | - - dataDictionary := Dictionary new. - - dataDictionary at: 'ssl' put: (self ssl). - dataDictionary at: 'name:' put: (self name). - dataDictionary at: 'address' put: (self serverInfo host). - dataDictionary at: 'port' put: (self serverInfo port). - dataDictionary at: 'username' put: (self authenticationInfo username). - dataDictionary at: 'password' put: (self authenticationInfo password). - - ^ dataDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo..st deleted file mode 100644 index a5fa38e8..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -authenticationInfo: anObject - - authenticationInfo := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo.st deleted file mode 100644 index e6496680..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/authenticationInfo.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -authenticationInfo - - ^ authenticationInfo \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkConnected.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkConnected.st index fac8fdbe..3cadb894 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkConnected.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkConnected.st @@ -1,6 +1,6 @@ error handling checkConnected - + (self fatalErrorOccured) ifTrue: [^ false]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForBadRequest.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForBadRequest.st index 313c98e5..70bd2bda 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForBadRequest.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForBadRequest.st @@ -4,7 +4,7 @@ checkForBadRequest (self fatalErrorOccured) ifTrue: [^ false]. - self responseIsError ifTrue: [ + (ICParser responseIsError: self stream lastResponse) ifTrue: [ self fatalErrorOccured: true. ^ Error signal: self class errorBadProtocol]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForParameterError.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForParameterError.st index 7895a720..05990c8b 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForParameterError.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkForParameterError.st @@ -1,12 +1,12 @@ -connection +error handling checkForParameterError (self fatalErrorOccured) ifTrue: [^ false]. - self responseIsParameterError ifTrue: [ + (ICParser responseIsParameterError: self stream lastResponse) ifTrue: [ self fatalErrorOccured: true. - UIManager default inform: 'Wrong username or password'. + self inform: 'Wrong username or password'. ^ true]. ^ false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkLoggedIn.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkLoggedIn.st index 763cc8ef..1cd60beb 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkLoggedIn.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/checkLoggedIn.st @@ -4,7 +4,7 @@ checkLoggedIn (self fatalErrorOccured) ifTrue: [^ false]. - self isLoggedIn ifFalse: [ + self loggedIn ifFalse: [ self fatalErrorOccured: true. ^ false]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/close.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/close.st index a90093ec..3ddbc858 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/close.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/close.st @@ -1,4 +1,4 @@ -login +connection close self stream close. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/commandSucceeded.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/commandSucceeded.st deleted file mode 100644 index 305e221d..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/commandSucceeded.st +++ /dev/null @@ -1,4 +0,0 @@ -protocol parse -commandSucceeded - - ^ self stream lastResponse beginsWith: self class commandSucceeded \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connect.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connect.st new file mode 100644 index 00000000..c82e12a5 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connect.st @@ -0,0 +1,4 @@ +connection +connect + + self connectWith: self class defaultStreamClass \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectAndLoginWith..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectAndLoginWith..st new file mode 100644 index 00000000..2ff6dfa8 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectAndLoginWith..st @@ -0,0 +1,14 @@ +connection +connectAndLoginWith: anICAccountInfo + + self accountInfo: anICAccountInfo. + + [self + connect; + login] + valueWithin: 2 seconds + onTimeout: [ + (self fatalErrorOccured) + ifFalse: [ + self inform: 'Connection could not be established'. + self fatalErrorOccured: true]] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on..st deleted file mode 100644 index 80f45b3d..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on..st +++ /dev/null @@ -1,4 +0,0 @@ -connection -connectTo: host on: port - - self connectTo: (ICServerInfo for: host using: port) with: SocketStream \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on.with..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on.with..st deleted file mode 100644 index 439fd4f5..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.on.with..st +++ /dev/null @@ -1,4 +0,0 @@ -connection -connectTo: aHost on: aPort with: aStreamClass - - self connectTo: (ICServerInfo for: aHost using: aPort) with: aStreamClass \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.with..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.with..st deleted file mode 100644 index 7f0f4e7b..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectTo.with..st +++ /dev/null @@ -1,12 +0,0 @@ -connection -connectTo: serverInfo with: aStreamClass - - serverInfo isValid ifFalse: [^ Error signal: self class errorInvalidConnectionConfiguration]. - - self serverInfo: serverInfo. - [self stream - ssl: self useSSL; - connectTo: self serverInfo host on: self serverInfo port with: aStreamClass; - nextResponse "skip server greetings"] - on: Error - do: [self fatalErrorOccured: true] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectWith..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectWith..st new file mode 100644 index 00000000..a729d3ad --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/connectWith..st @@ -0,0 +1,11 @@ +connection +connectWith: aStreamClass + + self accountInfo isValid ifFalse: [^ Error signal: self class errorInvalidConnectionConfiguration]. + + [self stream + ssl: self accountInfo ssl; + connectTo: self accountInfo host on: self accountInfo port with: aStreamClass; + nextResponse "skip server greetings"] + on: Error + do: [self fatalErrorOccured: true] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/createEmailsWith.andName.and..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/createEmailsWith.andName.and..st index 29974bc5..91c085a0 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/createEmailsWith.andName.and..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/createEmailsWith.andName.and..st @@ -1,25 +1,20 @@ -connection +storage createEmailsWith: maildirDirectory andName: directoryName and: relativeRootFolder - "this loads mails from storage and create ICFolder with ICMails in it." - - | serverDirectory filereader email folder | + | serverDirectory filereader folder | serverDirectory := maildirDirectory directoryNamed: directoryName. filereader := ICFileReadWriter new. - "for each directory create Folder" - (serverDirectory directoryNames) do: [:foldername | + serverDirectory directoryNames do: [:foldername | folder := (ICFolder new) - name: foldername; + folderName: foldername; endpoint: self; yourself. - relativeRootFolder addFolder: folder. self createEmailsWith: serverDirectory andName: foldername and: folder]. - "add mails in a directory to parent folder" - (serverDirectory) fileNames do: [:filename | - email := (filereader get: filename in: (maildirDirectory fullPathFor: directoryName)). - email folder: relativeRootFolder. - relativeRootFolder emails add: email] \ No newline at end of file + relativeRootFolder addMails: (serverDirectory fileNames collect: [:filename | + (filereader get: filename in: (maildirDirectory fullPathFor: directoryName)) + folder: relativeRootFolder; + yourself ]). diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDs.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDs.st new file mode 100644 index 00000000..099790d6 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDs.st @@ -0,0 +1,12 @@ +fetching +currentUIDs + + self + sendCommand: ICCommand allUIDs; + fetchNextResponse. + + self + uids: ((self lastResponse first subStrings: ' ') asOrderedCollection + removeFirst; + removeFirst; + yourself) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDsFor..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDsFor..st new file mode 100644 index 00000000..e09ca2c1 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/currentUIDsFor..st @@ -0,0 +1,23 @@ +fetching +currentUIDsFor: anICFolder + + | isEmpty | + + self select: anICFolder path. + isEmpty := true. + + self lastResponse do: + [:line | (line findString: 'EXISTS') positive + ifTrue: [isEmpty := false]]. + + isEmpty + ifFalse: [ + self + sendCommand: ICCommand allUIDs; + fetchNextResponse. + self + uids: ((self lastResponse first subStrings: ' ') asOrderedCollection + removeFirst; + removeFirst; + yourself)] + ifTrue: [^ OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/deleteEmail..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/deleteEmail..st index f10f3a53..e3bdd6fd 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/deleteEmail..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/deleteEmail..st @@ -1,6 +1,6 @@ delete deleteEmail: anEmail - - self sendCommand: (self class deleteEmail: anEmail messageID). + + self sendCommand: (ICCommand deleteEmail: anEmail messageID). self fetchNextResponse. self moveEmail: anEmail to: self folderNameOfTrash \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/expungeEmail.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/expungeEmail.st index a6940ac7..563f64b9 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/expungeEmail.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/expungeEmail.st @@ -1,5 +1,5 @@ delete expungeEmail - self sendCommand: (self class expungeEmail). + self sendCommand: ICCommand expungeEmail. self fetchNextResponse diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured..st index 3886392f..15c1305f 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured..st @@ -1,7 +1,4 @@ -as yet unclassified +accessing fatalErrorOccured: aBoolean - "If an error occured, that makes it impossible for a connection to be established, - set this variable to true, so other checks do not have to be passed" - fatalErrorOccured := aBoolean \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured.st index e066e336..56f7775b 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fatalErrorOccured.st @@ -1,7 +1,4 @@ -as yet unclassified +accessing fatalErrorOccured - - "If an error occured, that makes it impossible for a connection to be established, - set this variable to true, so other checks do not have to be passed" - ^ fatalErrorOccured \ No newline at end of file + ^ fatalErrorOccured ifNil: [fatalErrorOccured := false] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchMailsBeginningAt.number..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchMailsBeginningAt.number..st index a9a438e2..9bf0b407 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchMailsBeginningAt.number..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchMailsBeginningAt.number..st @@ -8,7 +8,7 @@ fetchMailsBeginningAt: aBeginUID number: numberOfMessages numberToFetch := numberOfMessages. - self getCurrentUIDs. + self currentUIDs. possibleUID := self uids select: [:uid | uid asNumber < aBeginUID]. possibleUID size < numberToFetch ifTrue: [numberToFetch := possibleUID size]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchNextResponse.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchNextResponse.st index 08fd6831..327143a6 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchNextResponse.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fetchNextResponse.st @@ -9,7 +9,7 @@ fetchNextResponse checkForBadRequest; checkForParameterError. - [(self stream lastResponse beginsWith: self class commandSucceeded)] + [ICParser commandSucceeded: self stream lastResponse] whileFalse: [ multiLineResponse add: self stream lastResponse. self stream nextResponse]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fillBodyFor..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fillBodyFor..st index 9ea911ce..cea02782 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fillBodyFor..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fillBodyFor..st @@ -1,7 +1,7 @@ -connection +login fillBodyFor: anEmail self - sendCommand: (self class fetchBodyCommand: anEmail messageID); + sendCommand: (ICCommand fetchBody: anEmail messageID); fetchNextResponse. - anEmail body: self parseFetchBody \ No newline at end of file + anEmail body: (ICParser parseFetchBody: self lastResponse) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderFromResponse..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderFromResponse..st index 7ea4e4cf..b52fa55d 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderFromResponse..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderFromResponse..st @@ -1,9 +1,16 @@ protocol parse folderFromResponse: responseLine - | folderPath parent | + | folder folderPath parent namePart| - folderPath := self folderPathFrom: responseLine. + + namePart := (responseLine copyAfter: ICCommand protocolQuote asCharacter). + + folder := ICParser parseFolderPathFrom: namePart. + self hierarchyDelimiter: folder hierarchyDelimiter. + folderPath := folder pathAsArray. + + (responseLine includesSubstring: '\Trash') ifTrue: [self folderNameOfTrash: folderPath first]. parent := self rootFolder childFolderNamed: folderPath first ifAbsent: [ICFolder named: folderPath first in: self rootFolder with: self]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash..st new file mode 100644 index 00000000..5f4cf9af --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash..st @@ -0,0 +1,4 @@ +accessing +folderNameOfTrash: aNameString + + folderNameOfTrash := aNameString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash.st index 80a899f3..1fd6d3ee 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderNameOfTrash.st @@ -1,4 +1,4 @@ accessing folderNameOfTrash - ^ 'Trash' \ No newline at end of file + ^ folderNameOfTrash \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderPathFrom..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderPathFrom..st deleted file mode 100644 index 40989c2c..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/folderPathFrom..st +++ /dev/null @@ -1,11 +0,0 @@ -protocol parse -folderPathFrom: responseLine - - | response splittedResponse folderName | - - response := responseLine copyReplaceAll: self class protocolQuote with: String empty. - splittedResponse := response subStrings: self class protocolBlank. - self hierarchyDelimiter: splittedResponse first. - folderName := splittedResponse allButFirst joinSeparatedBy: ' '. - - ^ folderName subStrings: self hierarchyDelimiter \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fromDictionary..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fromDictionary..st deleted file mode 100644 index 61550d38..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/fromDictionary..st +++ /dev/null @@ -1,14 +0,0 @@ -accessing -fromDictionary: configData - - [self - ssl: (configData at: 'ssl'); - name: (configData at: 'name'); - connectTo: (configData at: 'address') on: ((configData at: 'port') asNumber); - login: (configData at: 'username') using: (configData at: 'password')] - valueWithin: 2 seconds - onTimeout: [ - (self fatalErrorOccured) - ifFalse: [ - UIManager default inform: 'Connection could not be established'. - self fatalErrorOccured: true]] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDs.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDs.st deleted file mode 100644 index 5b32adbd..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDs.st +++ /dev/null @@ -1,12 +0,0 @@ -fetching -getCurrentUIDs - - self - sendCommand: self class getAllUIDs; - fetchNextResponse. - - self - uids: (((self lastResponse at: 1) subStrings: ' ') asOrderedCollection - removeFirst; - removeFirst; - yourself) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDsFor..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDsFor..st deleted file mode 100644 index 3fd499e2..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getCurrentUIDsFor..st +++ /dev/null @@ -1,25 +0,0 @@ -fetching -getCurrentUIDsFor: anICFolder - - | isEmpty | - - self select: anICFolder path. - isEmpty := true. - - (self lastResponse do: - [:line | (line findString: 'EXISTS') > 0 - ifTrue: [isEmpty := false]]). - - isEmpty - ifFalse: [ - self - sendCommand: self class getAllUIDs; - fetchNextResponse. - self - uids: (((self lastResponse at: 1) subStrings: ' ') asOrderedCollection - removeFirst; - removeFirst; - yourself)] - ifTrue: [ - Transcript show: (anICFolder name), ' is an empty folder!'. - ^ OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getRootFolderName.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getRootFolderName.st deleted file mode 100644 index ec07b47c..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/getRootFolderName.st +++ /dev/null @@ -1,7 +0,0 @@ -accessing -getRootFolderName - - "this accounts are saved with a hashed name, because we could otherwise get problems with - special tokens like @ or spaces in server-host or username" - - ^ ICHelper getHashNameForAccount: (self serverInfo host) and: (self authenticationInfo username) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/host.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/host.st new file mode 100644 index 00000000..0dfb37ae --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/host.st @@ -0,0 +1,4 @@ +accessing +host + + ^ self accountInfo host \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/initialize.st deleted file mode 100644 index 0a10750e..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/initialize.st +++ /dev/null @@ -1,15 +0,0 @@ -initialization -initialize - - super initialize. - - self - loggedIn: false; - serverInfo: ICServerInfo new; - ssl: false; - name: ''; - authenticationInfo: ICAuthenticationInfo new; - stream: ICStreamWrapper new; - rootFolder: (ICFolder newRootFolderWith: self); - lastResponse: OrderedCollection new; - fatalErrorOccured: false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isConnected.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isConnected.st index 4bfa714b..65478afe 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isConnected.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isConnected.st @@ -1,4 +1,4 @@ -login +connection isConnected ^ self stream isConnected \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isLoggedIn.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isLoggedIn.st deleted file mode 100644 index db9a45a7..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/isLoggedIn.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -isLoggedIn - - ^ self loggedIn \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse..st index 73671fc0..21c35674 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse..st @@ -1,4 +1,4 @@ accessing -lastResponse: anObject +lastResponse: anOrderedCollection - lastResponse := anObject \ No newline at end of file + lastResponse := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse.st index 2c95b3a7..5364b267 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/lastResponse.st @@ -1,4 +1,4 @@ accessing lastResponse - ^ lastResponse \ No newline at end of file + ^ lastResponse ifNil: [lastResponse := OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/listFoldersIn.using..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/listFoldersIn.using..st index 32bf456d..21f8a6cc 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/listFoldersIn.using..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/listFoldersIn.using..st @@ -5,10 +5,6 @@ listFoldersIn: root using: filter checkConnected; checkLoggedIn. - self sendCommand: ( - {self class listCommand. - self class asProtocolQuote: root. - self class asProtocolQuote: filter} - joinSeparatedBy: self class protocolBlank). + self sendCommand: (ICCommand listSubfoldersOf: root filterBy: filter). ^ self parseListResponse \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loadEmailsFromMaildir.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loadEmailsFromMaildir.st index 89b7afef..ad376970 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loadEmailsFromMaildir.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loadEmailsFromMaildir.st @@ -1,4 +1,4 @@ -login +storage loadEmailsFromMaildir | directory directoryName | @@ -8,11 +8,9 @@ loadEmailsFromMaildir ifFalse: [directory createDirectory: 'Maildir']. directory := directory directoryNamed: 'Maildir'. - directoryName := self getRootFolderName. + directoryName := self rootFolderName. (directory directoryExists: directoryName) - ifFalse: [ - Transcript show: 'Maildir doesnt exist'. - ^ (OrderedCollection new)]. + ifFalse: [^ (OrderedCollection new)]. ^ self createEmailsWith: directory andName: directoryName and: (self rootFolder) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn..st index a525277b..2d7074b5 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn..st @@ -1,4 +1,4 @@ accessing -loggedIn: anObject +loggedIn: aBool - loggedIn := anObject \ No newline at end of file + loggedIn := aBool \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn.st index 6dd72b26..a1b50bb5 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loggedIn.st @@ -1,4 +1,4 @@ accessing loggedIn - ^ loggedIn \ No newline at end of file + ^ loggedIn ifNil: [loggedIn := false] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.st index 5f92dadd..90e280e5 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.st @@ -1,22 +1,18 @@ login login - + (self checkConnected) ifFalse: [ self fatalErrorOccured: true. - UIManager default inform: 'Cant connect to the server'. + self inform: 'Cant connect to the server'. ^ false]. - (self authenticationInfo isValid) ifFalse: [ + (self accountInfo isValid) ifFalse: [ self fatalErrorOccured: true. ^ false]. - self sendCommand: ( - { self class loginCommand. - self authenticationInfo username. - self authenticationInfo password } - joinSeparatedBy: self class protocolBlank); + self sendCommand: (ICCommand loginWith: self accountInfo); fetchNextResponse; - loggedIn: self commandSucceeded. + loggedIn: (ICParser commandSucceeded: self stream lastResponse). (self checkLoggedIn) ifFalse: [ self fatalErrorOccured: true. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.using..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.using..st deleted file mode 100644 index e5fccdec..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/login.using..st +++ /dev/null @@ -1,5 +0,0 @@ -login -login: username using: password - - ^ self loginUsing: (ICAuthenticationInfo for: username using: password) - \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loginUsing..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loginUsing..st deleted file mode 100644 index 6281fbe3..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/loginUsing..st +++ /dev/null @@ -1,6 +0,0 @@ -login -loginUsing: autheticationInfo - - ^ self - authenticationInfo: autheticationInfo; - login \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/logout.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/logout.st index aba66699..2565a516 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/logout.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/logout.st @@ -2,7 +2,7 @@ login logout self checkConnected. - self stream sendCommand: self class logoutCommand. + self sendCommand: ICCommand logout. self fetchNextResponse; close. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom..st index 304f9fd6..2c41f3c3 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom..st @@ -1,10 +1,7 @@ -connection +fetching maildirDiffFetchHeadersFrom: anUID - "fetch headers in range (anUID, self uids last(" - - self uids ifEmpty: [ ^ OrderedCollection new]. - self uids + ifEmpty: [ ^ OrderedCollection new]; ifNil: [^ OrderedCollection new] ifNotNil: [^ self maildirDiffFetchHeadersFrom: (anUID + 1) to: (self uids last + 1)] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom.to..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom.to..st index 896a97e7..450fea09 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom.to..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirDiffFetchHeadersFrom.to..st @@ -1,19 +1,18 @@ -connection +fetching maildirDiffFetchHeadersFrom: start to: end | searchBegin searchEnd mailFolder | - + (FileDirectory default directoryExists: (FileDirectory default fullPathFor: self maildirFileName)) ifTrue: [ mailFolder := FileDirectory default on: self maildirFileName. searchBegin := mailFolder fileNamesMatching: (end asString). searchEnd := mailFolder fileNamesMatching: (start asString). - searchBegin size > 0 & (searchEnd size > 0) ifTrue: [ - Transcript show: 'Do nothing. Newest Mailrange already loaded'. - ^ OrderedCollection new]]. - + (searchBegin notEmpty and: [searchEnd notEmpty]) + ifTrue: [^ OrderedCollection new]]. + ^ self - sendCommand: (self class fetchHeadersWithUIDRange: start to: end); + sendCommand: (ICCommand fetchHeadersForUIDsFrom: start to: end); fetchNextResponse; parseFetchHeaders: self lastResponse \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirFileName.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirFileName.st index e518fe2d..001bb3df 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirFileName.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/maildirFileName.st @@ -1,10 +1,8 @@ -connection +storage maildirFileName - "replace hierarchyDelimiter with FileSystem slash" - ^ 'Maildir', FileDirectory slash, - self getRootFolderName, + self rootFolderName, FileDirectory slash, - currentFolderName copyReplaceAll: (self hierarchyDelimiter) with: (FileDirectory slash) \ No newline at end of file + self currentFolderName copyReplaceAll: (self hierarchyDelimiter) with: (FileDirectory slash) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/moveEmail.to..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/moveEmail.to..st index 53d8648f..5ed67a2f 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/moveEmail.to..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/moveEmail.to..st @@ -1,6 +1,6 @@ delete moveEmail: anEmail to: aFolder - self sendCommand: (self class moveEmail: anEmail messageID to: ('"', aFolder, '"')). + self sendCommand: (ICCommand moveEmail: anEmail messageID to: aFolder). self fetchNextResponse. (self rootFolder childFolderNamed: aFolder with: (self hierarchyDelimiter)) update \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name..st deleted file mode 100644 index 63b0e25f..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -name: anObject - - name := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name.st deleted file mode 100644 index 4b7f3504..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/name.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -name - - ^ name \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchBody.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchBody.st deleted file mode 100644 index 852b641c..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchBody.st +++ /dev/null @@ -1,4 +0,0 @@ -protocol parse -parseFetchBody - - ^ ((self lastResponse copyFrom: 2 to: (self lastResponse size - 1)) joinSeparatedBy: Character cr) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchFlagsOnly..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchFlagsOnly..st deleted file mode 100644 index dfd89c37..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchFlagsOnly..st +++ /dev/null @@ -1,23 +0,0 @@ -protocol parse -parseFetchFlagsOnly: aFolder - - "method to parse a flags-only response" - (self lastResponse isEmpty) - ifTrue: [^ '']. - - "iterate through lastResponse and find flags for every uid" - lastResponse do: [:line | - | uidPart uid email | - uidPart := (line allRegexMatches: 'UID \d*') ifEmpty: [ ^ '']. - uid := (uidPart first allRegexMatches: '[\d]+') ifEmpty: [ ^ '']. - uid := uid first. - email := aFolder emails detect: [:mail | mail uid asString = uid] ifNone: [^ '']. - - "only update maildir file, it something changes, this improves performance drastically" - ((email seen ~= (line includesSubString: '\Seen')) or: - (email flagged ~= (line includesSubString: '\Flagged')) or: - (email deleted ~= (line includesSubString: '\Deleted'))) ifTrue: [ - email seen: (line includesSubString: '\Seen'). - email flagged: (line includesSubString: '\Flagged'). - email deleted: (line includesSubString: '\Deleted'). - email saveInMaildir]] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeader.withId..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeader.withId..st deleted file mode 100644 index de549afd..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeader.withId..st +++ /dev/null @@ -1,25 +0,0 @@ -protocol parse -parseFetchHeader: headerLines withId: id - - | email headerData headerChunk | - - email := ICEmail new. - email messageID: id. - - headerData := (headerLines subStrings: {Character cr}). - headerChunk := OrderedCollection new. - - "this is necassery because one header field could contains multiple lines" - headerData do: [:line | - (line includesSubString: 'UID') - ifTrue: [email uid: ((line subStrings: ' ') second)] - ifFalse: [ - ((self startsNewHeaderChunk: line) & (headerChunk notEmpty)) - ifTrue: [ - self parseHeaderChunk: headerChunk for: email. - headerChunk removeAll]. - headerChunk add: line]]. - - self parseHeaderChunk: headerChunk for: email. - - ^ email \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentTransferEncoding.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentTransferEncoding.for..st deleted file mode 100644 index 037b6bbd..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentTransferEncoding.for..st +++ /dev/null @@ -1,7 +0,0 @@ -protocol parse -parseFetchHeaderContentTransferEncoding: aHeaderChunk for: anEmail - - | answer | - - answer := ((aHeaderChunk joinSeparatedBy: ' ') subStrings: ' ') allButFirst joinSeparatedBy: ' '. - anEmail contentTransferEncoding: answer \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentType.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentType.for..st deleted file mode 100644 index c1a67e89..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderContentType.for..st +++ /dev/null @@ -1,8 +0,0 @@ -protocol parse -parseFetchHeaderContentType: aHeaderChunk for: anEmail - - | answer | - - "notice that joinSeperatedBy: ' ' and subStrings: ' ' are not inverse operation" - answer := ((aHeaderChunk joinSeparatedBy: ' ') subStrings: ' ') allButFirst joinSeparatedBy: ' '. - anEmail contentType: answer \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderDate.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderDate.for..st deleted file mode 100644 index 066fa19f..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderDate.for..st +++ /dev/null @@ -1,4 +0,0 @@ -protocol parse -parseFetchHeaderDate: aHeaderChunk for: anEmail - - anEmail date: ((aHeaderChunk first subStrings: ' ') allButFirst joinSeparatedBy: ' ') \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderFlags.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderFlags.for..st deleted file mode 100644 index b435df0e..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderFlags.for..st +++ /dev/null @@ -1,6 +0,0 @@ -protocol parse -parseFetchHeaderFlags: aHeaderChunk for: anEmail - - anEmail seen: ((aHeaderChunk at: 1) includesSubString: '\Seen'). - anEmail flagged: ((aHeaderChunk at: 1) includesSubString: '\Flagged'). - anEmail deleted: ((aHeaderChunk at: 1) includesSubString: '\Deleted') \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderReceiver.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderReceiver.for..st deleted file mode 100644 index 72b4e7c4..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderReceiver.for..st +++ /dev/null @@ -1,4 +0,0 @@ -protocol parse -parseFetchHeaderReceiver: aHeaderChunk for: anEmail - - anEmail to: (aHeaderChunk collect: [:receiverLine | (receiverLine subStrings: ' ') last ]) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSender.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSender.for..st deleted file mode 100644 index 15036edd..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSender.for..st +++ /dev/null @@ -1,8 +0,0 @@ -protocol parse -parseFetchHeaderSender: aHeaderChunk for: anEmail - - | sender | - - sender := ((aHeaderChunk collect: [ :each | each withBlanksTrimmed]) joinSeparatedBy: ' '). - sender := (sender subStrings: ':') allButFirst joinSeparatedBy: ':'. - anEmail from: sender withBlanksTrimmed \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSubject.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSubject.for..st deleted file mode 100644 index 97d0441d..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaderSubject.for..st +++ /dev/null @@ -1,8 +0,0 @@ -protocol parse -parseFetchHeaderSubject: aHeaderChunk for: anEmail - - | list | - - list := ((aHeaderChunk joinSeparatedBy: ' ') subStrings: ((Character tab) asString)). - list := ((list joinSeparatedBy: ' ') subStrings: ' '). - anEmail subject: (list allButFirst joinSeparatedBy: ' ') decodeMimeHeader \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaders..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaders..st index e37b3fa2..99a6175c 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaders..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchHeaders..st @@ -1,13 +1,12 @@ protocol parse parseFetchHeaders: headerLines - | parser folder parseResult mailCollection | + | folder parseResult mailCollection | - (headerLines size = 0) ifTrue: [^ OrderedCollection new]. - + headerLines ifEmpty: [^ OrderedCollection new]. + mailCollection := OrderedCollection new. - parser := ICFetchResponseParser new. - parseResult := parser parse: (ReadStream on: (headerLines joinSeparatedBy: Character cr)). + parseResult := ICParser parseFetchMailStream: (ReadStream on: (headerLines joinSeparatedBy: Character cr)). folder := self rootFolder childFolderNamed: (self currentFolderName) with: (self hierarchyDelimiter). @@ -15,7 +14,7 @@ parseFetchHeaders: headerLines parseResult keysAndValuesDo: [:id :message | | mail | "parse the message and ID into a ICMail" - mail := self parseFetchHeader: message withId: id. + mail := ICParser parseFetchHeader: message withId: id. mailCollection add: mail. "store the ICMail in the appropriate folder and write it on the disk" mail folder: folder; saveInMaildir]. diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchedFlagsAndPopulate..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchedFlagsAndPopulate..st new file mode 100644 index 00000000..331ad3a0 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseFetchedFlagsAndPopulate..st @@ -0,0 +1,16 @@ +protocol parse +parseFetchedFlagsAndPopulate: aFolder + + | flagsPerUID | + + flagsPerUID := ICParser parseFetchedFlagsAndPopulate: self lastResponse. + + aFolder emails do: [:email | + flagsPerUID at: email uniqueID asString ifPresent: [:flags | + ((email seen ~= (flags includes: '\Seen')) or: + (email flagged ~= (flags includes: '\Flagged')) or: + (email deleted ~= (flags includes: '\Deleted'))) ifTrue: [ + email seen: (flags includes: '\Seen'). + email flagged: (flags includes: '\Flagged'). + email deleted: (flags includes: '\Deleted'). + email saveInMaildir]]]. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseHeaderChunk.for..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseHeaderChunk.for..st deleted file mode 100644 index e40e01d4..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseHeaderChunk.for..st +++ /dev/null @@ -1,12 +0,0 @@ -protocol parse -parseHeaderChunk: aHeaderChunk for: anEmail - - | headerField method | - - headerField := (aHeaderChunk first subStrings: ' ') first. - (headerField includesSubString: ':') ifTrue: [headerField := headerField allButLast]. - - method := (self parseMethods at: headerField ifAbsent: nil). - method isNil - ifTrue: [Transcript show: 'WARNING: No method for parsing Header field:', headerField; cr] - ifFalse: [method value: aHeaderChunk value: anEmail] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseListResponse.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseListResponse.st index 69a01be7..d5d29793 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseListResponse.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseListResponse.st @@ -2,4 +2,4 @@ protocol parse parseListResponse self fetchNextResponse. - self lastResponse do: [:each | self folderFromResponse: (each copyAfter: self class protocolQuote asCharacter)] \ No newline at end of file + self lastResponse do: [:each | self folderFromResponse: each] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseMethods.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseMethods.st deleted file mode 100644 index 8d923452..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/parseMethods.st +++ /dev/null @@ -1,12 +0,0 @@ -protocol parse -parseMethods - - ^ Dictionary newFrom: { - 'To' -> [:headerChunk :email | self parseFetchHeaderReceiver: headerChunk for: email]. - 'From' -> [:headerChunk :email | self parseFetchHeaderSender: headerChunk for: email]. - 'Subject' -> [:headerChunk :email | self parseFetchHeaderSubject: headerChunk for: email]. - 'Date' -> [:headerChunk :email | self parseFetchHeaderDate: headerChunk for: email]. - 'FLAGS' -> [:headerChunk :email | self parseFetchHeaderFlags: headerChunk for: email]. - 'Content-Type' -> [:headerChunk :email | self parseFetchHeaderContentType: headerChunk for: email]. - 'Content-Transfer-Encoding' -> [:headerChunk :email | - self parseFetchHeaderContentTransferEncoding: headerChunk for: email]} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ping.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ping.st index 29886a05..344c14e5 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ping.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ping.st @@ -2,6 +2,6 @@ message handling ping self checkConnected. - self sendCommand: self class noopCommand. + self sendCommand: ICCommand noop. self fetchNextResponse. ^ true \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/refreshConnectionProcess.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/refreshConnectionProcess.st index 7d91c9c4..30c44b37 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/refreshConnectionProcess.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/refreshConnectionProcess.st @@ -1,13 +1,8 @@ connection refreshConnectionProcess - | delayTime | - - delayTime := 60 * 10. "Wait for 10 minutes." - - [self isConnected and: [self isLoggedIn]] + [self isConnected and: [self loggedIn]] whileTrue: [ - self sendCommand: self class noopCommand. + self sendCommand: ICCommand noop. self fetchNextResponse. - Transcript show: 'Prevent timeout'. - (Delay forSeconds: delayTime) wait] \ No newline at end of file + (Delay forSeconds: self class refreshConnectionIntervalInSeconds) wait] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/resetFlag.and..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/resetFlag.and..st index 70b5c6f1..a2bbd870 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/resetFlag.and..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/resetFlag.and..st @@ -1,6 +1,5 @@ fetching resetFlag: anEmail and: aFlag - - (aFlag == #flagged) ifTrue: [self sendCommand: (self class resetFlagFlagged: anEmail messageID)]. - (aFlag == #seen) ifTrue: [self sendCommand: (self class resetFlagSeen: anEmail messageID)]. + + self sendCommand: (ICCommand resetFlag: aFlag asString for: anEmail messageID). self fetchNextResponse \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsError.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsError.st deleted file mode 100644 index 880b91a5..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsError.st +++ /dev/null @@ -1,4 +0,0 @@ -error handling -responseIsError - - ^ self stream lastResponse beginsWith: self class protocolError \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsParameterError.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsParameterError.st deleted file mode 100644 index 02200769..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsParameterError.st +++ /dev/null @@ -1,6 +0,0 @@ -error handling -responseIsParameterError - - ^ self class protocolParameterError = - ((self stream lastResponse subStrings: self class protocolBlank) - at: self class parameterErrorPosition) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsWarning.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsWarning.st deleted file mode 100644 index a2ae4944..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/responseIsWarning.st +++ /dev/null @@ -1,4 +0,0 @@ -error handling -responseIsWarning - - ^ false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/retrieveFlagsFrom.to.in..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/retrieveFlagsFrom.to.in..st index 473377a1..b1a66f51 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/retrieveFlagsFrom.to.in..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/retrieveFlagsFrom.to.in..st @@ -2,7 +2,7 @@ fetching retrieveFlagsFrom: anUID to: anotherUID in: aFolder self - sendCommand: (self class fetchFlagsWithUIDRange: anUID to: anotherUID); + sendCommand: (ICCommand fetchFlagsForUIDsFrom: anUID to: anotherUID); fetchNextResponse. - self parseFetchFlagsOnly: aFolder \ No newline at end of file + self parseFetchedFlagsAndPopulate: aFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder..st index 39b879e0..b5caae36 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder..st @@ -1,4 +1,4 @@ accessing -rootFolder: anObject +rootFolder: anICFolder - rootFolder := anObject \ No newline at end of file + rootFolder := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder.st index c739077f..aa77b224 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolder.st @@ -1,4 +1,4 @@ accessing rootFolder - ^ rootFolder \ No newline at end of file + ^ rootFolder ifNil: [rootFolder := ICFolder newRootFolderWith: self] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolderName.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolderName.st new file mode 100644 index 00000000..bee1dab9 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/rootFolderName.st @@ -0,0 +1,6 @@ +accessing +rootFolderName + + ^ (SecureHashAlgorithm new + hashMessage: self host, self username) + asString first: self class accountFolderHashRelevantCharacters \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/select..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/select..st index 6f367f85..8faf6ffd 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/select..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/select..st @@ -1,7 +1,6 @@ message handling select: aFolderName - self - currentFolderName: aFolderName; - sendCommand: (self class selectCommand: ('"' , aFolderName, '"')); + self currentFolderName: aFolderName; + sendCommand: (ICCommand select: aFolderName); fetchNextResponse \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo..st deleted file mode 100644 index 34060511..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -serverInfo: anObject - - serverInfo := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo.st deleted file mode 100644 index fadbc722..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/serverInfo.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -serverInfo - - ^ serverInfo \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/setFlag.and..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/setFlag.and..st index 3e84d86b..75098c56 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/setFlag.and..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/setFlag.and..st @@ -1,6 +1,5 @@ fetching setFlag: anEmail and: aFlag - (aFlag == #flagged) ifTrue: [self sendCommand: (self class setFlagFlagged: anEmail messageID)]. - (aFlag == #seen) ifTrue: [self sendCommand: (self class setFlagSeen: anEmail messageID)]. + self sendCommand: (ICCommand setFlag: aFlag asString for: anEmail messageID). self fetchNextResponse \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl..st deleted file mode 100644 index b1be2292..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -ssl: anObject - - ssl := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl.st deleted file mode 100644 index 36952b3d..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/ssl.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -ssl - - ^ ssl \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream..st index b355bd09..8f22cb2b 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream..st @@ -1,4 +1,4 @@ accessing -stream: anObject +stream: anICStreamWrapper - stream := anObject \ No newline at end of file + stream := anICStreamWrapper \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream.st index 80c70fdb..157c9446 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/stream.st @@ -1,4 +1,4 @@ accessing stream - ^ stream \ No newline at end of file + ^ stream ifNil: [stream := ICStreamWrapper new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/testAccountWith..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/testAccountWith..st index 2f6b7691..c6ea917d 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/testAccountWith..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/testAccountWith..st @@ -1,6 +1,6 @@ -as yet unclassified -testAccountWith: dataDictionary +login +testAccountWith: anAccountInfo - self fromDictionary: dataDictionary. + self connectAndLoginWith: anAccountInfo. ^ self fatalErrorOccured not \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids..st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids..st index 7cc03a56..a29dc85b 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids..st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids..st @@ -1,4 +1,4 @@ -connection -uids: anObject +accessing +uids: anOrderedCollection - uids := anObject \ No newline at end of file + uids := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids.st index d0e79b32..fd9707fd 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids.st +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/uids.st @@ -1,4 +1,4 @@ -connection +accessing uids ^ uids \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/useSSL.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/useSSL.st deleted file mode 100644 index f36f1779..00000000 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/useSSL.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -useSSL - - ^ self ssl \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/username.st b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/username.st new file mode 100644 index 00000000..ba316f4d --- /dev/null +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/instance/username.st @@ -0,0 +1,4 @@ +accessing +username + + ^ self accountInfo username \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/methodProperties.json b/packages/IMAPClient-Core.package/ICEndPoint.class/methodProperties.json index 53d849df..1eef467a 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/methodProperties.json +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/methodProperties.json @@ -1,126 +1,78 @@ { "class" : { - "asProtocolQuote:" : "C.G. 7/25/2018 14:10", - "commandFailed" : "C.G. 7/25/2018 14:10", - "commandSucceeded" : "C.G. 7/25/2018 14:10", - "deleteEmail:" : "C.G. 7/25/2018 14:10", - "errorBadParameter" : "jwe 7/28/2016 11:12", + "accountFolderHashRelevantCharacters" : "ok 7/26/2019 19:11", + "addConfiguration:" : "tg 7/8/2019 15:12", + "basicConnectionConfigurations" : "tg 7/8/2019 15:14", + "checkValidConfiguration:" : "tg 7/18/2019 23:06", + "clearConfigurations" : "pm 6/19/2019 13:17", + "connectionConfigurations" : "tg 7/8/2019 15:14", + "connectionConfigurations:" : "pm 6/19/2019 14:49", + "defaultStreamClass" : "tg 7/15/2019 13:26", "errorBadProtocol" : "js 5/15/2016 13:55", - "errorInvalidAuthenticationConfiguration" : "js 5/15/2016 16:16", "errorInvalidConnectionConfiguration" : "js 5/15/2016 16:15", - "errorLoginFailed" : "js 5/15/2016 14:57", - "errorNoConnection" : "js 5/15/2016 13:50", - "errorNoPasswordSet" : "js 5/15/2016 13:51", - "errorNoUsernameSet" : "js 5/15/2016 13:51", - "expungeEmail" : "C.G. 7/25/2018 14:10", - "fetchBodyCommand:" : "lvm 5/8/2018 11:09", - "fetchFlagsWithUIDRange:to:" : "C.G. 7/25/2018 14:10", - "fetchHeadersWithUIDRange:to:" : "C.G. 7/25/2018 14:11", - "getAllUIDs" : "C.G. 7/25/2018 14:11", - "lastHeaderLine" : "jwe 7/14/2016 09:19", - "listCommand" : "js 6/8/2016 15:36", - "loginCommand" : "js 6/7/2016 09:55", - "logoutCommand" : "js 6/7/2016 09:55", - "moveEmail:to:" : "DH 7/9/2018 21:29", - "noopCommand" : "js 6/7/2016 09:55", - "parameterErrorPosition" : "jwe 7/28/2016 11:38", - "protocolBlank" : "js 5/15/2016 13:37", - "protocolCommandStart" : "AR 5/29/2016 22:19", - "protocolError" : "C.G. 7/25/2018 14:11", - "protocolParameterError" : "jwe 7/19/2016 10:47", - "protocolQuote" : "js 6/8/2016 15:41", - "resetFlagFlagged:" : "C.G. 7/25/2018 14:12", - "resetFlagSeen:" : "C.G. 7/25/2018 14:12", - "selectCommand:" : "AR 6/26/2016 11:44", - "setFlagFlagged:" : "C.G. 7/25/2018 14:12", - "setFlagSeen:" : "C.G. 7/25/2018 14:12" }, + "refreshConnectionIntervalInSeconds" : "ok 7/26/2019 21:04", + "removeConfiguration:" : "tg 7/8/2019 15:12" }, "instance" : { - "asDictionary" : "C.G. 6/21/2018 09:56", - "authenticationInfo" : "ms 5/17/2016 09:31", - "authenticationInfo:" : "ms 5/17/2016 09:31", - "checkConnected" : "C.G. 7/25/2018 12:29", - "checkForBadRequest" : "C.G. 7/25/2018 12:30", - "checkForParameterError" : "DH 7/25/2018 17:29", - "checkLoggedIn" : "C.G. 7/25/2018 12:42", + "accountInfo" : "tg 7/10/2019 17:23", + "accountInfo:" : "tg 7/10/2019 17:24", + "asAccountInfoDictionary" : "tg 7/15/2019 12:20", + "checkConnected" : "tg 7/10/2019 19:29", + "checkForBadRequest" : "pm 7/25/2019 17:59", + "checkForParameterError" : "tg 7/26/2019 11:43", + "checkLoggedIn" : "tg 7/15/2019 12:44", "close" : "AR 5/31/2016 11:12", - "commandSucceeded" : "AR 6/14/2016 08:46", - "connectTo:on:" : "jwe 7/28/2016 14:02", - "connectTo:on:with:" : "jwe 7/28/2016 14:10", - "connectTo:with:" : "C.G. 7/25/2018 13:50", - "createEmailsWith:andName:and:" : "C.G. 6/26/2018 10:51", + "connect" : "tg 7/15/2019 13:27", + "connectAndLoginWith:" : "tg 7/26/2019 11:43", + "connectWith:" : "tg 7/18/2019 23:00", + "createEmailsWith:andName:and:" : "tg 7/26/2019 22:01", "currentFolderName" : "C.G. 7/25/2018 13:50", "currentFolderName:" : "C.G. 7/25/2018 13:50", - "deleteEmail:" : "C.G. 7/4/2018 14:21", - "expungeEmail" : "mw 6/22/2018 23:00", - "fatalErrorOccured" : "C.G. 7/25/2018 12:33", - "fatalErrorOccured:" : "C.G. 7/25/2018 12:33", - "fetchMailsBeginningAt:number:" : "C.G. 7/25/2018 13:50", - "fetchNextResponse" : "C.G. 7/25/2018 13:51", - "fillBodyFor:" : "ms 7/10/2016 14:09", - "folderFromResponse:" : "C.G. 7/25/2018 13:51", - "folderNameOfTrash" : "mw 6/23/2018 12:08", - "folderPathFrom:" : "DH 7/4/2018 13:14", - "fromDictionary:" : "DH 7/25/2018 17:26", - "getCurrentUIDs" : "C.G. 7/25/2018 13:52", - "getCurrentUIDsFor:" : "C.G. 7/25/2018 13:53", - "getRootFolderName" : "C.G. 7/25/2018 13:53", + "currentUIDs" : "fr 7/26/2019 15:48", + "currentUIDsFor:" : "ok 7/26/2019 21:01", + "deleteEmail:" : "tg 7/26/2019 14:12", + "expungeEmail" : "pm 7/23/2019 15:07", + "fatalErrorOccured" : "tg 7/26/2019 21:05", + "fatalErrorOccured:" : "tg 7/26/2019 21:05", + "fetchMailsBeginningAt:number:" : "pm 7/15/2019 20:28", + "fetchNextResponse" : "pm 7/15/2019 20:37", + "fillBodyFor:" : "pm 7/15/2019 20:42", + "folderFromResponse:" : "ok 7/26/2019 17:45", + "folderNameOfTrash" : "tg 7/26/2019 14:12", + "folderNameOfTrash:" : "tg 7/26/2019 14:13", "hierarchyDelimiter" : "mw 5/11/2018 10:37", "hierarchyDelimiter:" : "mw 5/11/2018 10:37", - "initialize" : "C.G. 7/25/2018 12:40", + "host" : "ok 7/26/2019 19:09", "isConnected" : "js 6/7/2016 10:13", - "isLoggedIn" : "js 5/15/2016 13:09", - "lastResponse" : "js 6/14/2016 10:38", + "lastResponse" : "pm 6/9/2019 13:10", "lastResponse:" : "lvm 5/24/2018 10:16", "listAllFolders" : "js 6/14/2016 12:31", - "listFoldersIn:using:" : "C.G. 7/25/2018 13:53", - "loadEmailsFromMaildir" : "C.G. 7/25/2018 13:54", - "loggedIn" : "js 5/15/2016 13:09", + "listFoldersIn:using:" : "pm 7/23/2019 14:51", + "loadEmailsFromMaildir" : "ok 7/26/2019 21:02", + "loggedIn" : "pm 6/9/2019 13:07", "loggedIn:" : "js 5/15/2016 13:09", - "login" : "DH 7/25/2018 17:29", - "login:using:" : "js 5/15/2016 16:33", - "loginUsing:" : "C.G. 7/25/2018 12:36", - "logout" : "js 6/14/2016 16:59", - "maildirDiffFetchHeadersFrom:" : "DH 7/25/2018 00:35", - "maildirDiffFetchHeadersFrom:to:" : "C.G. 7/25/2018 13:54", - "maildirFileName" : "C.G. 6/26/2018 10:55", - "moveEmail:to:" : "DH 7/9/2018 21:29", - "name" : "C.G. 7/4/2018 12:47", - "name:" : "C.G. 7/4/2018 12:47", - "parseFetchBody" : "C.G. 7/25/2018 13:54", - "parseFetchFlagsOnly:" : "C.G. 7/25/2018 13:55", - "parseFetchHeader:withId:" : "C.G. 7/25/2018 13:55", - "parseFetchHeaderContentTransferEncoding:for:" : "C.G. 7/25/2018 13:55", - "parseFetchHeaderContentType:for:" : "C.G. 7/25/2018 13:56", - "parseFetchHeaderDate:for:" : "DH 5/30/2018 02:12", - "parseFetchHeaderFlags:for:" : "C.G. 7/25/2018 13:56", - "parseFetchHeaderReceiver:for:" : "C.G. 7/25/2018 13:56", - "parseFetchHeaderSender:for:" : "C.G. 7/25/2018 13:56", - "parseFetchHeaderSubject:for:" : "C.G. 7/25/2018 13:56", - "parseFetchHeaders:" : "C.G. 7/25/2018 13:56", - "parseHeaderChunk:for:" : "C.G. 6/26/2018 10:57", - "parseListResponse" : "C.G. 7/25/2018 13:57", - "parseMethods" : "C.G. 7/25/2018 13:57", - "ping" : "AR 6/26/2016 15:04", + "login" : "tg 7/26/2019 11:43", + "logout" : "tg 7/25/2019 12:42", + "maildirDiffFetchHeadersFrom:" : "tg 7/15/2019 13:31", + "maildirDiffFetchHeadersFrom:to:" : "ok 7/26/2019 21:02", + "maildirFileName" : "tg 7/26/2019 21:05", + "moveEmail:to:" : "pm 7/23/2019 14:58", + "parseFetchHeaders:" : "fr 7/26/2019 15:53", + "parseFetchedFlagsAndPopulate:" : "pm 7/25/2019 17:45", + "parseListResponse" : "tg 7/26/2019 14:20", + "ping" : "pm 7/23/2019 15:09", "preventTimeout" : "lvm 7/23/2018 23:33", - "refreshConnectionProcess" : "C.G. 7/25/2018 13:58", - "resetFlag:and:" : "mw 5/17/2018 20:49", - "responseIsError" : "js 6/7/2016 10:16", - "responseIsParameterError" : "js 8/4/2017 22:25", - "responseIsWarning" : "AR 6/30/2016 07:54", - "retrieveFlagsFrom:to:in:" : "C.G. 7/25/2018 13:58", - "rootFolder" : "js 6/10/2016 15:09", + "refreshConnectionProcess" : "ok 7/26/2019 21:04", + "resetFlag:and:" : "tg 7/26/2019 13:44", + "retrieveFlagsFrom:to:in:" : "pm 7/25/2019 17:45", + "rootFolder" : "pm 6/9/2019 13:09", "rootFolder:" : "js 6/10/2016 15:09", - "select:" : "C.G. 6/28/2018 10:30", + "rootFolderName" : "tg 7/26/2019 21:05", + "select:" : "fr 7/26/2019 15:45", "sendCommand:" : "DH 6/26/2018 20:21", - "serverInfo" : "js 5/15/2016 16:45", - "serverInfo:" : "js 5/15/2016 16:45", - "setFlag:and:" : "C.G. 7/25/2018 13:58", - "ssl" : "ms 7/12/2016 10:35", - "ssl:" : "ms 7/12/2016 10:35", - "startsNewHeaderChunk:" : "C.G. 7/25/2018 13:58", - "stream" : "js 6/7/2016 10:17", + "setFlag:and:" : "tg 7/26/2019 13:44", + "stream" : "pm 6/9/2019 13:08", "stream:" : "js 6/7/2016 10:17", - "testAccountWith:" : "C.G. 7/25/2018 12:23", + "testAccountWith:" : "tg 7/26/2019 22:12", "uids" : "C.G. 7/25/2018 13:59", - "uids:" : "C.G. 7/25/2018 13:59", - "useSSL" : "ms 7/12/2016 10:35" } } + "uids:" : "pm 6/9/2019 16:52", + "username" : "ok 7/26/2019 19:09" } } diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/properties.json b/packages/IMAPClient-Core.package/ICEndPoint.class/properties.json index 3f0af72e..96e353df 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/properties.json +++ b/packages/IMAPClient-Core.package/ICEndPoint.class/properties.json @@ -3,21 +3,20 @@ "classinstvars" : [ ], "classvars" : [ - ], + "ConnectionConfigurations" ], "commentStamp" : "ms 7/28/2016 11:48", "instvars" : [ "stream", - "serverInfo", + "accountInfo", "loggedIn", - "authenticationInfo", "rootFolder", "lastResponse", "ssl", "uids", "hierarchyDelimiter", "currentFolderName", - "name", - "fatalErrorOccured" ], + "fatalErrorOccured", + "folderNameOfTrash" ], "name" : "ICEndPoint", "pools" : [ ], diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID..st deleted file mode 100644 index 7ed7cc31..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -currentID: anObject - - currentID := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID.st deleted file mode 100644 index ce629a57..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentID.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -currentID - - ^ currentID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail..st deleted file mode 100644 index 1cfb80f3..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -currentMail: anObject - - currentMail := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail.st deleted file mode 100644 index 0b7edb25..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/currentMail.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -currentMail - - ^ currentMail \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails..st deleted file mode 100644 index d818fb91..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -emails: anObject - - emails := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails.st deleted file mode 100644 index dbee1693..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/emails.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -emails - - ^ emails \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/initialize.st deleted file mode 100644 index a91c305c..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/initialize.st +++ /dev/null @@ -1,6 +0,0 @@ -initialization -initialize - - self emails: Dictionary new. - self currentMail: ''. - self currentID: '' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parse..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parse..st deleted file mode 100644 index ba5ec4e3..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parse..st +++ /dev/null @@ -1,10 +0,0 @@ -parser managment -parse: aStream - - [self reader: aStream. - "try to parse one mail after another" - - [reader atEnd] whileFalse: [self parseMail]. - ^ self emails] - on: Error - do: [:parsingError | self inform: parsingError asString] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchCommand.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchCommand.st deleted file mode 100644 index b15df179..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchCommand.st +++ /dev/null @@ -1,9 +0,0 @@ -states -parseFetchCommand - - "parse the stream until we received the Fetch Command. Format: FETCH SP (. SP denotes Space Character" - - "received FETCH (" - ((self reader next: 7) = 'FETCH (') - ifFalse: [self throwError: 'parseFetchCommand'] - ifTrue: [self parseFetchContent] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchContent.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchContent.st deleted file mode 100644 index 6c1eef1a..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseFetchContent.st +++ /dev/null @@ -1,39 +0,0 @@ -states -parseFetchContent - - "parse the stream until we parsed the fetch content" - - | octetSize | - - "parse just the command, we gave the server (the part before the data comes)" - self currentMail: self currentMail, (self reader nextDelimited: ${). - - "as stated in RFC3501 the response can contain all kind of 8-bit ASCII characters, so - we can't parse this string by searching for e.g. parenthesis. A string literal is prefix-quoted - with the octet count, surrounded by { }, which helps to determine the relevant body part " - - octetSize := (self reader nextDelimited: $}). - - (octetSize isAllDigits) - ifFalse: [self throwError: 'parseFetchContent'] - ifTrue: [ - | counter | - counter := octetSize asNumber. - - "parse the string literal by using octetSize" - [counter > 0] - whileTrue: [ - | currentChar | - currentChar := (self reader next:1). - self currentMail: self currentMail, currentChar. - counter := counter -1. - (currentChar = Character cr asString) - "RFC3501 requires mails to be seperated by CRLF, which - counts as two bytes. So we need to count CR double" - ifTrue: [counter := counter -1]]. - - "now follows a SP and the UID. So we can skip until the closing bracket of the fetch" - self currentMail: self currentMail, (self reader nextDelimited: $)). - - "sklp the CR, at the end of the response" - self reader next: 1] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseID.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseID.st deleted file mode 100644 index 03ab41a5..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseID.st +++ /dev/null @@ -1,12 +0,0 @@ -states -parseID - - "parse the stream until we received the message ID. Format: * SP id. SP denotes Space Character" - - "received *SP" - ((self reader next: 2) = '* ') - ifFalse: [self throwError: #parseID] - ifTrue: [ - "received *SP id" - self currentID: (self reader nextDelimited: (Character space)). - self parseFetchCommand] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseMail.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseMail.st deleted file mode 100644 index 0101cc0d..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/parseMail.st +++ /dev/null @@ -1,13 +0,0 @@ -parser managment -parseMail - - "this method coordinates parsing of a SINGLE mail. After the method finished the Stream Position - is at the end of the stream, or at the beginning of a new mail" - - self parseID. - - "store mail and uid pair into dictionary" - self emails at: self currentID put: self currentMail. - - "reset variables for nextMail" - self reset \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader..st deleted file mode 100644 index b69cfc64..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -reader: anObject - - reader := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader.st deleted file mode 100644 index bea6e52a..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reader.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -reader - - ^ reader \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reset.st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reset.st deleted file mode 100644 index 1348f226..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/reset.st +++ /dev/null @@ -1,5 +0,0 @@ -initialization -reset - - self currentMail: ''. - self currentID: '' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/throwError..st b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/throwError..st deleted file mode 100644 index d52841b8..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/instance/throwError..st +++ /dev/null @@ -1,7 +0,0 @@ -parser managment -throwError: aState - - | msg | - - msg := 'Parsing Error in state ', aState. - self error: msg \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/methodProperties.json b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/methodProperties.json deleted file mode 100644 index c88164fe..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/methodProperties.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "class" : { - }, - "instance" : { - "currentID" : "C.G. 7/4/2018 13:24", - "currentID:" : "C.G. 7/4/2018 13:24", - "currentMail" : "C.G. 7/4/2018 13:24", - "currentMail:" : "C.G. 7/4/2018 13:24", - "emails" : "C.G. 7/4/2018 13:24", - "emails:" : "C.G. 7/4/2018 13:24", - "initialize" : "C.G. 7/4/2018 12:47", - "parse:" : "C.G. 7/25/2018 13:59", - "parseFetchCommand" : "C.G. 7/4/2018 12:50", - "parseFetchContent" : "C.G. 7/4/2018 13:13", - "parseID" : "C.G. 7/4/2018 13:04", - "parseMail" : "C.G. 7/4/2018 13:25", - "reader" : "C.G. 7/4/2018 13:04", - "reader:" : "C.G. 7/25/2018 14:00", - "reset" : "DH 7/4/2018 13:17", - "throwError:" : "C.G. 7/4/2018 13:06" } } diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/properties.json b/packages/IMAPClient-Core.package/ICFetchResponseParser.class/properties.json deleted file mode 100644 index 29684b4a..00000000 --- a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/properties.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "category" : "IMAPClient-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "currentMail", - "emails", - "currentID", - "reader" ], - "name" : "ICFetchResponseParser", - "pools" : [ - ], - "super" : "Object", - "type" : "normal" } diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/README.md b/packages/IMAPClient-Core.package/ICFileReadWriter.class/README.md index e69de29b..6c497541 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/README.md +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/README.md @@ -0,0 +1 @@ +An ICFileReadWriter is a JSON File Writer and Reader handling the file system storage of mails. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createHeaderFrom..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createHeaderFrom..st index 85373db4..4e6a1825 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createHeaderFrom..st +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createHeaderFrom..st @@ -9,6 +9,6 @@ createHeaderFrom: aJsonObject #subject -> (aJsonObject at: 'subject'). #contentType -> (aJsonObject at: 'contentType'). #contentTransferEncoding -> (aJsonObject at: 'contentTransferEncoding'). - #to -> (self getRecipientsFrom: (aJsonObject at: 'to')). + #to -> (self recipientsFrom: (aJsonObject at: 'to')). #seen -> (aJsonObject at: 'seen'). #flagged -> (aJsonObject at: 'flagged')} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createPathRecursive.and..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createPathRecursive.and..st index 962143aa..57458308 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createPathRecursive.and..st +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/createPathRecursive.and..st @@ -5,13 +5,9 @@ createPathRecursive: aPath and: aFileWriter subDir := ((aPath subStrings: (FileDirectory slash))). - subDir size > 0 - ifTrue: [ + subDir ifNotEmpty: [ (aFileWriter directoryExists: subDir first) ifFalse: [ aFileWriter createDirectory: subDir first]. - "Transcript show: subDir first." self createPathRecursive: (subDir allButFirst joinSeparatedBy: (FileDirectory slash)) - and: (aFileWriter on: subDir first)]. - - ^ self \ No newline at end of file + and: (aFileWriter on: subDir first)]. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/get.in..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/get.in..st index db966c08..e0db6399 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/get.in..st +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/get.in..st @@ -11,5 +11,5 @@ get: aFile in: aFolder header: (self createHeaderFrom: (jsonFile at: 'header')); body: (jsonFile at: 'body'); messageID: (jsonFile at: 'messageID'); - uid: (jsonFile at: 'uid'); + uniqueID: (jsonFile at: 'uid'); yourself \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/getRecipientsFrom..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/getRecipientsFrom..st deleted file mode 100644 index a2bccfaf..00000000 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/getRecipientsFrom..st +++ /dev/null @@ -1,11 +0,0 @@ -read file -getRecipientsFrom: aJsonObject - - | recipients | - - aJsonObject ifNil: [^ nil]. - - recipients := OrderedCollection new. - aJsonObject do: [:eachRecipient | recipients add: eachRecipient]. - - ^ recipients \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/recipientsFrom..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/recipientsFrom..st new file mode 100644 index 00000000..121b6dec --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/recipientsFrom..st @@ -0,0 +1,6 @@ +read file +recipientsFrom: aJsonObject + + aJsonObject + ifNil: [^ nil] + ifNotNil: [^ aJsonObject asOrderedCollection] diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/write.in.as..st b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/write.in.as..st index 95458fba..7e2f1049 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/write.in.as..st +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/instance/write.in.as..st @@ -7,7 +7,7 @@ write: anICEmail in: aFolder as: aString 'header' -> (self createJsonHeaderFrom: anICEmail header). 'body' -> anICEmail body. 'messageID' -> anICEmail messageID. - 'uid' -> anICEmail uid}. + 'uid' -> anICEmail uniqueID}. fileDirectory := FileDirectory default. self createPathRecursive: aFolder and: fileDirectory. diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/methodProperties.json b/packages/IMAPClient-Core.package/ICFileReadWriter.class/methodProperties.json index e0a6131f..83beb9bb 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/methodProperties.json +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/methodProperties.json @@ -2,9 +2,9 @@ "class" : { }, "instance" : { - "createHeaderFrom:" : "C.G. 7/25/2018 14:00", + "createHeaderFrom:" : "pm 6/3/2019 18:34", "createJsonHeaderFrom:" : "C.G. 7/25/2018 14:00", - "createPathRecursive:and:" : "C.G. 7/25/2018 14:01", - "get:in:" : "C.G. 7/25/2018 14:01", - "getRecipientsFrom:" : "C.G. 7/25/2018 14:01", - "write:in:as:" : "C.G. 7/25/2018 14:01" } } + "createPathRecursive:and:" : "tg 7/26/2019 21:50", + "get:in:" : "pm 6/2/2019 15:58", + "recipientsFrom:" : "fr 7/26/2019 15:34", + "write:in:as:" : "pm 6/2/2019 16:11" } } diff --git a/packages/IMAPClient-Core.package/ICFileReadWriter.class/properties.json b/packages/IMAPClient-Core.package/ICFileReadWriter.class/properties.json index feea3909..f64da6fd 100644 --- a/packages/IMAPClient-Core.package/ICFileReadWriter.class/properties.json +++ b/packages/IMAPClient-Core.package/ICFileReadWriter.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "ok 7/9/2019 21:00", "instvars" : [ ], "name" : "ICFileReadWriter", diff --git a/packages/IMAPClient-Core.package/ICFolder.class/class/named.in..st b/packages/IMAPClient-Core.package/ICFolder.class/class/named.in..st index 54834acd..44f3364b 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/class/named.in..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/class/named.in..st @@ -4,7 +4,7 @@ named: name in: parent | newFolder | newFolder := self new. - newFolder name: name. + newFolder folderName: name. parent addFolder: newFolder. diff --git a/packages/IMAPClient-Core.package/ICFolder.class/class/named.in.with..st b/packages/IMAPClient-Core.package/ICFolder.class/class/named.in.with..st index e4f25e28..7ae142da 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/class/named.in.with..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/class/named.in.with..st @@ -4,7 +4,7 @@ named: name in: parent with: endpoint | newFolder | newFolder := (self new) - name: name; + folderName: name; endpoint: endpoint. parent addFolder: newFolder. diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/accountName.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/accountName.st new file mode 100644 index 00000000..2b93e2c7 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/accountName.st @@ -0,0 +1,4 @@ +accessing +accountName + + ^ self endpoint accountInfo accountName \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/addMails..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/addMails..st new file mode 100644 index 00000000..9c3a9fc9 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/addMails..st @@ -0,0 +1,4 @@ +email access +addMails: aMailCollection + + self emails addAll: aMailCollection. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/checkTopicality.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/checkTopicality.st index 3f32127b..18c655e6 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/checkTopicality.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/checkTopicality.st @@ -4,16 +4,16 @@ checkTopicality | relevantUIDs localMails min max | " we cant access first and last of the sortedCollection because its sorted by date, not by UID " - min := self getLowestUID. - max := self getHighestUID. + min := self lowestUniqueID. + max := self highestUniqueID. - self endpoint getCurrentUIDs. + self endpoint currentUIDs. - relevantUIDs := self endpoint uids select: [ :uid | (uid asNumber <= max) and: (uid asNumber >=min)]. + relevantUIDs := self endpoint uids select: [ :uid | (uid asNumber <= max) and: [uid asNumber >=min]]. "search for uids, which are in storage, but not on the server --> they were moved" localMails := self emails copy. - relevantUIDs do: [ :uid | localMails removeAllSuchThat: [ :mail | mail uid = uid]]. + relevantUIDs do: [ :uid | localMails removeAllSuchThat: [ :mail | mail uniqueID = uid]]. "everything left in localMails has changed, and therefore can be removed" localMails do: [ :mail | mail deleteEmailFromDisk] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.ifAbsent..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.ifAbsent..st index 2ce0dc46..e5a29568 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.ifAbsent..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.ifAbsent..st @@ -1,6 +1,6 @@ folder hierarchy -childFolderNamed: name ifAbsent: block +childFolderNamed: childFolderName ifAbsent: block ^ self childFolders - detect: [:child | child name = name] + detect: [:child | child folderName = childFolderName] ifNone: [block value] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.with.ifAbsent..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.with.ifAbsent..st index 883704c9..a025b299 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.with.ifAbsent..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolderNamed.with.ifAbsent..st @@ -1,16 +1,17 @@ folder hierarchy -childFolderNamed: name with: delimiter ifAbsent: block +childFolderNamed: childFolderName with: delimiter ifAbsent: block + + | rootPart childPart child parts | ^ self childFolders - detect: [:child | child name = name] + detect: [:subFolder | subFolder folderName = childFolderName] ifNone: [ - | rootPart childPart child parts | "splice at delimiter and ask child" - parts := name subStrings: delimiter. + parts := childFolderName subStrings: delimiter. (parts size > 1) ifTrue: [ rootPart := parts first. childPart := parts allButFirst joinSeparatedBy: delimiter. - child := self childFolders detect: [ :childFolder | childFolder name = rootPart]. + child := self childFolders detect: [ :childFolder | childFolder folderName = rootPart]. child ifNotNil: [^ child childFolderNamed: childPart with: delimiter ifAbsent: block]]. ^ block value] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders..st index ae30edb0..94a53e2a 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders..st @@ -1,4 +1,4 @@ accessing -childFolders: anObject +childFolders: anOrderedCollection - childFolders := anObject \ No newline at end of file + childFolders := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders.st index 1c7b89f2..81baf2b9 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/childFolders.st @@ -1,4 +1,4 @@ accessing childFolders - ^ childFolders \ No newline at end of file + ^ childFolders ifNil: [childFolders := OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/emails..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/emails..st index d818fb91..b6e0ab79 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/emails..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/emails..st @@ -1,4 +1,4 @@ accessing -emails: anObject +emails: aDictionary - emails := anObject \ No newline at end of file + emails := aDictionary \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/emails.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/emails.st index dbee1693..17e0eb29 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/emails.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/emails.st @@ -1,4 +1,4 @@ accessing emails - - ^ emails \ No newline at end of file + ^ emails ifNil: [emails := (SortedCollection sortBlock: [:first :second | + first dateInSecondsSinceSqueakEpoch >= second dateInSecondsSinceSqueakEpoch])] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/endpoint..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/endpoint..st index b41cab06..8b0d2f22 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/endpoint..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/endpoint..st @@ -1,4 +1,4 @@ accessing -endpoint: anObject +endpoint: anICEndpoint - endpoint := anObject \ No newline at end of file + endpoint := anICEndpoint \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/fetchHeadersFrom..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/fetchHeadersFrom..st index 956806b1..d226ec2a 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/fetchHeadersFrom..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/fetchHeadersFrom..st @@ -1,19 +1,14 @@ updateEmails fetchHeadersFrom: anUID - - "loads mails, which are newer than anUID" self emails addAll: (self endpoint - getCurrentUIDsFor: self; + currentUIDsFor: self; maildirDiffFetchHeadersFrom: anUID). - self emails size = 0 ifTrue: [^ self]. + self emails ifEmpty: [^ self]. - " check if mails were moved on the server, so that we need to delete them" self checkTopicality. - " if checkTopicality deleted mails, the mails again could be empty " - self emails size = 0 ifTrue: [^ self]. - - "update existing flags of all mails in folder" - self retrieveFlagsFrom: self emails last uid to: self emails first uid \ No newline at end of file + self emails ifEmpty: [^ self]. + + self retrieveFlagsFrom: self emails last uniqueID to: self emails first uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName..st new file mode 100644 index 00000000..00a5b191 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName..st @@ -0,0 +1,4 @@ +accessing +folderName: aString + + folderName := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName.st new file mode 100644 index 00000000..85a68045 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/folderName.st @@ -0,0 +1,4 @@ +accessing +folderName + + ^ folderName ifNil: [folderName := self class defaultName] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/getHighestUID.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/getHighestUID.st deleted file mode 100644 index 0c4f6145..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/getHighestUID.st +++ /dev/null @@ -1,6 +0,0 @@ -updateEmails -getHighestUID - - (self emails) ifEmpty: [^ nil]. - - ^ (self emails detectMax: [:mail | mail uid asNumber]) uid \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/getLatestEmails..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/getLatestEmails..st deleted file mode 100644 index f39e2ece..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/getLatestEmails..st +++ /dev/null @@ -1,12 +0,0 @@ -email access -getLatestEmails: count - - | startUID allUIDs | - - self endpoint getCurrentUIDsFor: self. - allUIDs := self endpoint uids. - allUIDs ifEmpty: [^ OrderedCollection new]. - (allUIDs size - count) <= 0 - ifTrue: [startUID := (allUIDs at: 1) - 1] - ifFalse: [startUID := allUIDs at: (allUIDs size - count)]. - self fetchHeadersFrom: startUID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/getLowestUID.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/getLowestUID.st deleted file mode 100644 index 6845505e..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/getLowestUID.st +++ /dev/null @@ -1,6 +0,0 @@ -updateEmails -getLowestUID - - (self emails) ifEmpty: [^ nil]. - - ^ (self emails detectMin: [:mail | mail uid asNumber]) uid \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/hierarchyDelimiter.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/hierarchyDelimiter.st new file mode 100644 index 00000000..be244755 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/hierarchyDelimiter.st @@ -0,0 +1,4 @@ +accessing +hierarchyDelimiter + + ^ self endpoint hierarchyDelimiter \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/highestUniqueID.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/highestUniqueID.st new file mode 100644 index 00000000..747c1147 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/highestUniqueID.st @@ -0,0 +1,6 @@ +updateEmails +highestUniqueID + + (self emails) ifEmpty: [^ nil]. + + ^ (self emails detectMax: [:mail | mail uniqueID asNumber]) uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/initialize.st deleted file mode 100644 index ad5dd80a..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/initialize.st +++ /dev/null @@ -1,8 +0,0 @@ -initialization -initialize - - self - parent: self; - childFolders: OrderedCollection new; - emails: (SortedCollection sortBlock: [:first :second | first getDateInSeconds >= second getDateInSeconds]); - name: self class defaultName \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/latestEmails..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/latestEmails..st new file mode 100644 index 00000000..f2facb45 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/latestEmails..st @@ -0,0 +1,12 @@ +email access +latestEmails: count + + | startUID allUIDs | + + self endpoint currentUIDsFor: self. + allUIDs := self endpoint uids. + allUIDs ifEmpty: [^ OrderedCollection new]. + (allUIDs size - count) strictlyPositive + ifTrue: [startUID := allUIDs at: (allUIDs size - count)] + ifFalse: [startUID := (allUIDs first) - 1]. + self fetchHeadersFrom: startUID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/loadOlderMails.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/loadOlderMails.st index bac07f34..7b707cc7 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/loadOlderMails.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/loadOlderMails.st @@ -1,9 +1,7 @@ email access loadOlderMails - "load #numberOfMails mails starting at lowest uid" - self emails addAll: (self endpoint - getCurrentUIDsFor: self; - fetchMailsBeginningAt: self getLowestUID number: self class numberOfHeadersToFetchAtLoadOlderMails) \ No newline at end of file + currentUIDsFor: self; + fetchMailsBeginningAt: self lowestUniqueID number: self class numberOfHeadersToFetchAtLoadOlderMails) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/lowestUniqueID.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/lowestUniqueID.st new file mode 100644 index 00000000..258f0588 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/lowestUniqueID.st @@ -0,0 +1,6 @@ +updateEmails +lowestUniqueID + + (self emails) ifEmpty: [^ nil]. + + ^ (self emails detectMin: [:mail | mail uniqueID asNumber]) uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/name..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/name..st deleted file mode 100644 index 63b0e25f..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/name..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -name: anObject - - name := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/name.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/name.st deleted file mode 100644 index 4b7f3504..00000000 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/name.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -name - - ^ name \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/parent..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/parent..st index 8a37352d..2a53b45f 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/parent..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/parent..st @@ -1,4 +1,4 @@ accessing -parent: anObject +parent: anICFolder - parent := anObject \ No newline at end of file + parent := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/parentPath.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/parentPath.st new file mode 100644 index 00000000..93a65324 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/parentPath.st @@ -0,0 +1,4 @@ +accessing +parentPath + + ^ self parent path \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/path.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/path.st index a2e0ef69..5e1404a6 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/path.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/path.st @@ -1,6 +1,6 @@ folder hierarchy path - ^ (self parent == self endpoint rootFolder) - ifTrue: [ self name ] - ifFalse: [ self parent path, self endpoint hierarchyDelimiter, self name] \ No newline at end of file + ^ (self parent == self rootFolder) + ifTrue: [ self folderName ] + ifFalse: [ self parentPath, self hierarchyDelimiter, self folderName] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/recursiveChildFolders.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/recursiveChildFolders.st new file mode 100644 index 00000000..2aa462bc --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/recursiveChildFolders.st @@ -0,0 +1,4 @@ +accessing +recursiveChildFolders + + ^ {self childFolders collect: [:child | child recursiveChildFolders]. self childFolders} flatten asOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/removeMail..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/removeMail..st new file mode 100644 index 00000000..12d46e40 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/removeMail..st @@ -0,0 +1,4 @@ +email access +removeMail: anICEmail + + self emails remove: anICEmail. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/retrieveFlagsFrom.to..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/retrieveFlagsFrom.to..st index 3a181b78..3286fc5f 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/retrieveFlagsFrom.to..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/retrieveFlagsFrom.to..st @@ -1,8 +1,5 @@ updateEmails retrieveFlagsFrom: anUID to: anotherUID - - "fetch mails from [anUid; anotherUID]" - self endpoint select: self path; retrieveFlagsFrom: anUID to: anotherUID in: self \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/rootFolder.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/rootFolder.st new file mode 100644 index 00000000..d7460ae0 --- /dev/null +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/rootFolder.st @@ -0,0 +1,4 @@ +accessing +rootFolder + + ^ self endpoint rootFolder \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/startUpdateProcess..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/startUpdateProcess..st index faa20aa2..76e36ba9 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/startUpdateProcess..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/startUpdateProcess..st @@ -1,10 +1,10 @@ updateEmails startUpdateProcess: anUID - (self name = 'root') ifTrue: [^self]. + (self folderName = 'root') ifTrue: [^self]. [anUID - ifNil: [self getLatestEmails: self class numberOfHeadersToFetchAtTheBeginning] + ifNil: [self latestEmails: self class numberOfHeadersToFetchAtTheBeginning] ifNotNil: [self fetchHeadersFrom: anUID]] - on: Error + on: Error do: [:e | self inform: e asString] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/update..st b/packages/IMAPClient-Core.package/ICFolder.class/instance/update..st index f36314a5..bc4edca7 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/update..st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/update..st @@ -3,7 +3,7 @@ update: aBlock ProgressNotification signal: (aBlock value) - extra: (self endpoint name, ' Mailbox. Folder: ', self name). + extra: (self accountName, ' Mailbox. Folder: ', self folderName). - self startUpdateProcess: self getHighestUID. + self startUpdateProcess: self highestUniqueID. self childFolders do: [:anICFolder | anICFolder update: aBlock] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/instance/update.st b/packages/IMAPClient-Core.package/ICFolder.class/instance/update.st index 2a4359cc..12e046dd 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/instance/update.st +++ b/packages/IMAPClient-Core.package/ICFolder.class/instance/update.st @@ -1,5 +1,5 @@ updateEmails update - self startUpdateProcess: self getHighestUID. + self startUpdateProcess: self highestUniqueID. self childFolders do: [:anICFolder | anICFolder update] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICFolder.class/methodProperties.json b/packages/IMAPClient-Core.package/ICFolder.class/methodProperties.json index ff82c6e8..5f21b25d 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/methodProperties.json +++ b/packages/IMAPClient-Core.package/ICFolder.class/methodProperties.json @@ -2,40 +2,46 @@ "class" : { "defaultName" : "js 6/7/2016 11:49", "errorChildDoesNotExist" : "js 6/14/2016 09:27", - "named:in:" : "C.G. 7/25/2018 14:12", - "named:in:with:" : "C.G. 7/4/2018 13:07", + "named:in:" : "tg 7/19/2019 09:27", + "named:in:with:" : "tg 7/19/2019 09:19", "newRootFolderWith:" : "C.G. 7/25/2018 14:12", "numberOfHeadersToFetchAtLoadOlderMails" : "DH 7/22/2018 22:37", "numberOfHeadersToFetchAtTheBeginning" : "DH 7/22/2018 22:37" }, "instance" : { + "accountName" : "ok 7/26/2019 19:06", "addFolder:" : "js 6/7/2016 13:09", - "checkTopicality" : "C.G. 7/25/2018 14:02", + "addMails:" : "tg 7/26/2019 22:00", + "checkTopicality" : "fr 7/26/2019 15:57", "childFolderNamed:" : "C.G. 7/25/2018 14:02", - "childFolderNamed:ifAbsent:" : "C.G. 6/26/2018 10:58", + "childFolderNamed:ifAbsent:" : "tg 7/19/2019 09:19", "childFolderNamed:with:" : "C.G. 6/26/2018 11:01", - "childFolderNamed:with:ifAbsent:" : "DH 7/9/2018 00:23", - "childFolders" : "js 6/7/2016 11:32", + "childFolderNamed:with:ifAbsent:" : "tg 7/26/2019 21:52", + "childFolders" : "pm 6/9/2019 13:12", "childFolders:" : "js 6/7/2016 11:32", "countFolders" : "C.G. 7/25/2018 14:02", - "emails" : "ms 6/28/2016 09:52", + "emails" : "fr 7/26/2019 15:19", "emails:" : "ms 6/28/2016 09:52", "endpoint" : "ms 7/10/2016 13:24", - "endpoint:" : "ms 7/10/2016 13:24", - "fetchHeadersFrom:" : "C.G. 7/25/2018 14:03", - "getHighestUID" : "C.G. 7/25/2018 14:03", - "getLatestEmails:" : "C.G. 7/12/2018 08:10", - "getLowestUID" : "C.G. 7/25/2018 14:03", - "initialize" : "DH 7/9/2018 11:22", - "loadOlderMails" : "C.G. 7/25/2018 14:03", - "name" : "js 6/7/2016 12:16", - "name:" : "js 6/7/2016 11:48", + "endpoint:" : "pm 6/9/2019 16:56", + "fetchHeadersFrom:" : "tg 7/26/2019 21:05", + "folderName" : "tg 7/19/2019 09:17", + "folderName:" : "tg 7/19/2019 09:17", + "hierarchyDelimiter" : "ok 7/26/2019 19:02", + "highestUniqueID" : "pm 6/3/2019 18:34", + "latestEmails:" : "fr 7/26/2019 15:55", + "loadOlderMails" : "tg 7/26/2019 21:05", + "lowestUniqueID" : "pm 6/3/2019 18:34", "numOfUnseenMails" : "C.G. 7/25/2018 14:03", - "parent" : "js 6/7/2016 11:32", + "parent" : "tg 6/25/2019 21:21", "parent:" : "js 6/7/2016 11:32", - "path" : "C.G. 7/25/2018 14:03", + "parentPath" : "ok 7/26/2019 19:08", + "path" : "ok 7/26/2019 19:08", + "recursiveChildFolders" : "tg 7/25/2019 12:56", "removeFolder:" : "C.G. 7/25/2018 14:03", "removeFolder:ifAbsent:" : "C.G. 7/25/2018 14:04", - "retrieveFlagsFrom:to:" : "C.G. 7/25/2018 14:04", - "startUpdateProcess:" : "DH 7/23/2018 00:00", - "update" : "DH 7/9/2018 00:49", - "update:" : "DH 7/19/2018 22:11" } } + "removeMail:" : "tg 7/26/2019 21:59", + "retrieveFlagsFrom:to:" : "fr 7/26/2019 15:37", + "rootFolder" : "ok 7/26/2019 19:05", + "startUpdateProcess:" : "tg 7/26/2019 20:33", + "update" : "pm 6/3/2019 18:34", + "update:" : "ok 7/26/2019 19:05" } } diff --git a/packages/IMAPClient-Core.package/ICFolder.class/properties.json b/packages/IMAPClient-Core.package/ICFolder.class/properties.json index c0a1657e..3ab0f024 100644 --- a/packages/IMAPClient-Core.package/ICFolder.class/properties.json +++ b/packages/IMAPClient-Core.package/ICFolder.class/properties.json @@ -8,7 +8,7 @@ "instvars" : [ "parent", "childFolders", - "name", + "folderName", "emails", "endpoint" ], "name" : "ICFolder", diff --git a/packages/IMAPClient-Core.package/ICHelper.class/README.md b/packages/IMAPClient-Core.package/ICHelper.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/accountDictionariesToEndpoints..st b/packages/IMAPClient-Core.package/ICHelper.class/class/accountDictionariesToEndpoints..st deleted file mode 100644 index dbb2c1c2..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/accountDictionariesToEndpoints..st +++ /dev/null @@ -1,12 +0,0 @@ -helper methods -accountDictionariesToEndpoints: aCollection - - "this method takes a collection of dictionaries, which contain login information, and responds with a collection of - endpoints, which are created from the dictionary data" - - | endpointCollection | - - endpointCollection := OrderedCollection new. - aCollection do: [:configData | endpointCollection add: (ICEndPoint new fromDictionary: configData)]. - - ^ endpointCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/deleteAccountFromEndpoint..st b/packages/IMAPClient-Core.package/ICHelper.class/class/deleteAccountFromEndpoint..st deleted file mode 100644 index 926ac8dd..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/deleteAccountFromEndpoint..st +++ /dev/null @@ -1,30 +0,0 @@ -helper methods -deleteAccountFromEndpoint: aEndpoint - - "Takes an currently active endpoint and deletes the account." - - | directory configDirectory fileName mailDirectory | - - fileName := self getHashNameForAccount: (aEndpoint serverInfo host) and: (aEndpoint authenticationInfo username). - directory := FileDirectory default. - - (directory directoryExists: 'Maildir') - ifFalse: [^ self]. - - directory := directory directoryNamed: 'Maildir'. - - "delete config file" - (directory directoryExists: 'config') - ifFalse: [^ self]. - - configDirectory := directory directoryNamed: 'config'. - - (configDirectory fileOrDirectoryExists: fileName) - ifTrue: [configDirectory deleteFileNamed: fileName]. - - "delete mail folder" - (directory directoryExists: fileName) - ifFalse: [^ self]. - - mailDirectory := directory directoryNamed: fileName. - mailDirectory recursiveDelete \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/getAllFolders..st b/packages/IMAPClient-Core.package/ICHelper.class/class/getAllFolders..st deleted file mode 100644 index 338dfeff..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/getAllFolders..st +++ /dev/null @@ -1,18 +0,0 @@ -helper methods -getAllFolders: initialCollection - - | folders stack | - - folders := OrderedCollection new. - - "depth first search" - stack := Stack new. - initialCollection do: [:each | stack push: each]. - - [stack isEmpty] whileFalse: [ - | topElement | - topElement := stack pop. - folders add: topElement. - topElement childFolders do: [ :folder | stack push: folder]]. - - ^ folders \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/getHashNameForAccount.and..st b/packages/IMAPClient-Core.package/ICHelper.class/class/getHashNameForAccount.and..st deleted file mode 100644 index 2a483bba..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/getHashNameForAccount.and..st +++ /dev/null @@ -1,4 +0,0 @@ -helper methods -getHashNameForAccount: aMailServer and: aUsername - - ^ (SecureHashAlgorithm new hashMessage: aMailServer, aUsername) asString first: 10 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/loadCredentialsIntoDictionaries.st b/packages/IMAPClient-Core.package/ICHelper.class/class/loadCredentialsIntoDictionaries.st deleted file mode 100644 index f63f2baf..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/loadCredentialsIntoDictionaries.st +++ /dev/null @@ -1,42 +0,0 @@ -helper methods -loadCredentialsIntoDictionaries - - "this methods loads all credentials from within config folder, - and returns them in a collection of dictionaries, which contain the login information" - - | defaultDirectory maildirDirectory configDirectory configs configCollection | - - configCollection := OrderedCollection new. - defaultDirectory := FileDirectory default. - - (defaultDirectory directoryExists: 'Maildir') - ifTrue: [ - maildirDirectory := defaultDirectory directoryNamed: 'Maildir'. - (maildirDirectory directoryExists: 'config') - ifTrue: [ - configDirectory := maildirDirectory directoryNamed: 'config'. - configs := configDirectory fileNames. - configs do: [ :config | - | loginData dataDictionary | - loginData := OrderedCollection new. - dataDictionary := Dictionary new. - - "parse config file" - FileStream readOnlyFileNamed: (configDirectory fullPathFor: config) do: - [:stream | - [stream atEnd] - whileFalse: [ - | line | - line := stream nextLine. - loginData add: line]]. - - "create a dictionary for each config file" - dataDictionary at: 'name' put: (loginData at: 1). - dataDictionary at: 'ssl' put: (self parseStringToBool: (loginData at: 5)). - dataDictionary at: 'address' put: (loginData at: 2) . - dataDictionary at: 'port' put: ((loginData at: 3) asString). - dataDictionary at: 'username' put: (loginData at: 4). - - configCollection add: dataDictionary]]]. - - ^ configCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/makeParameterCollection..st b/packages/IMAPClient-Core.package/ICHelper.class/class/makeParameterCollection..st deleted file mode 100644 index b2a4410e..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/makeParameterCollection..st +++ /dev/null @@ -1,16 +0,0 @@ -as yet unclassified -makeParameterCollection: aCollection - - "This hardcoded function returns a Collection of the given keys in the Dictionary. - It is sorted by the order in which the data needs to be inserted in the ICLoginDialog" - - | sortedCollection | - - sortedCollection := OrderedCollection new. - (aCollection includes: 'password') ifTrue: [sortedCollection addFirst: 'password']. - (aCollection includes: 'username') ifTrue: [sortedCollection addFirst: 'username']. - (aCollection includes: 'port') ifTrue: [sortedCollection addFirst: 'server port']. - (aCollection includes: 'address') ifTrue: [sortedCollection addFirst: 'server address']. - (aCollection includes: 'name') ifTrue: [sortedCollection addFirst: 'account name']. - - ^ sortedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/parseStringToBool..st b/packages/IMAPClient-Core.package/ICHelper.class/class/parseStringToBool..st deleted file mode 100644 index 3c50dbf9..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/parseStringToBool..st +++ /dev/null @@ -1,6 +0,0 @@ -helper methods -parseStringToBool: aString - - aString = 'true' - ifTrue: [^ true] - ifFalse: [ ^ false] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/resetMailData.st b/packages/IMAPClient-Core.package/ICHelper.class/class/resetMailData.st deleted file mode 100644 index e7bd5fa6..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/resetMailData.st +++ /dev/null @@ -1,17 +0,0 @@ -helper methods -resetMailData - - | directory | - - "warning: this will delete whole Maildir Directory" - directory := FileDirectory default. - - (directory directoryExists: 'Maildir') - ifFalse: [^ 'No Maildir exists']. - - directory := directory directoryNamed: 'Maildir'. - directory recursiveDelete. - - ICLoadOlderMail instance: nil. - - ^ 'OK' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/class/saveCredentialsIntoFile..st b/packages/IMAPClient-Core.package/ICHelper.class/class/saveCredentialsIntoFile..st deleted file mode 100644 index 3c51b08e..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/class/saveCredentialsIntoFile..st +++ /dev/null @@ -1,31 +0,0 @@ -helper methods -saveCredentialsIntoFile: aDataDictionary - - "Takes a dictionary and saves data in a config file. - aDataDictionary should have keys: [name, address, port, username, password, ssl]" - - | default_directory maildir_directory config_directory fileName | - - fileName := self getHashNameForAccount: (aDataDictionary at: 'address') and: (aDataDictionary at: 'username') . - - default_directory := FileDirectory default. - (default_directory directoryExists: 'Maildir') - ifFalse: [default_directory createDirectory: 'Maildir']. - maildir_directory := default_directory directoryNamed: 'Maildir'. - - (maildir_directory directoryExists: 'config') - ifFalse: [maildir_directory createDirectory: 'config']. - config_directory := maildir_directory directoryNamed: 'config'. - - (config_directory fileOrDirectoryExists: fileName) - ifTrue: [config_directory deleteFileNamed: fileName]. - - FileStream forceNewFileNamed: (config_directory fullPathFor: fileName) do: - [ :stream | stream - wantsLineEndConversion: false; - nextPutAll: (aDataDictionary at: 'name') asString; cr; - nextPutAll: (aDataDictionary at: 'address') asString; cr; - nextPutAll: (aDataDictionary at: 'port') asString; cr; - nextPutAll: (aDataDictionary at: 'username') asString; cr; - nextPutAll: (aDataDictionary at: 'ssl') asString; cr; - close] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICHelper.class/methodProperties.json b/packages/IMAPClient-Core.package/ICHelper.class/methodProperties.json deleted file mode 100644 index b026d901..00000000 --- a/packages/IMAPClient-Core.package/ICHelper.class/methodProperties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "class" : { - "accountDictionariesToEndpoints:" : "C.G. 6/21/2018 10:43", - "deleteAccountFromEndpoint:" : "C.G. 7/25/2018 14:06", - "getAllFolders:" : "C.G. 7/12/2018 08:13", - "getHashNameForAccount:and:" : "C.G. 7/25/2018 14:06", - "loadCredentialsIntoDictionaries" : "C.G. 7/25/2018 14:06", - "makeParameterCollection:" : "C.G. 7/25/2018 12:20", - "parseStringToBool:" : "C.G. 7/25/2018 14:07", - "resetMailData" : "C.G. 7/4/2018 13:10", - "saveCredentialsIntoFile:" : "C.G. 7/25/2018 14:07" }, - "instance" : { - } } diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/README.md b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instance..st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instance..st deleted file mode 100644 index c4ee7b16..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instance..st +++ /dev/null @@ -1,4 +0,0 @@ -instances -instance: anObject - - instance := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instanceFor..st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instanceFor..st deleted file mode 100644 index c589db90..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/class/instanceFor..st +++ /dev/null @@ -1,17 +0,0 @@ -instances -instanceFor: anICFolderDialog - - instance ifNil: [instance := self new - header: (Dictionary newFrom: { - #date -> ''. - #from -> ''. - #seen -> true. - #subject -> 'load older eMails!'. - #to -> OrderedCollection new}); - body: ''; - seen: true; - flagged: false; - messageID: '-1'; - uid: '-1']. - - ^ instance folder: anICFolderDialog selectedFolder; folderDialog: anICFolderDialog \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog..st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog..st deleted file mode 100644 index 20d94825..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -folderDialog: anICFolderDialog - - folderDialog := anICFolderDialog \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog.st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog.st deleted file mode 100644 index 02c6aa3b..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/folderDialog.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -folderDialog - - ^ folderDialog \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/getDateInSeconds.st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/getDateInSeconds.st deleted file mode 100644 index 1ae91175..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/getDateInSeconds.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -getDateInSeconds - - ^ -1 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/isFlaggable.st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/isFlaggable.st deleted file mode 100644 index b577d36c..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/isFlaggable.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -isFlaggable - - ^ false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/open.st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/open.st deleted file mode 100644 index 809f29f4..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/open.st +++ /dev/null @@ -1,4 +0,0 @@ -action -open - - self folderDialog loadOlderEmails \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/retrieveFlags.st b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/retrieveFlags.st deleted file mode 100644 index a3d3a0f4..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/instance/retrieveFlags.st +++ /dev/null @@ -1,6 +0,0 @@ -action -retrieveFlags - - "mock retrieve flags" - - ^ Dictionary newFrom: {#seen -> true} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/methodProperties.json b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/methodProperties.json deleted file mode 100644 index 1cd59438..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/methodProperties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "class" : { - "instance:" : "C.G. 7/25/2018 14:09", - "instanceFor:" : "DH 6/26/2018 11:03" }, - "instance" : { - "folderDialog" : "lvm 5/23/2018 13:24", - "folderDialog:" : "lvm 5/23/2018 13:24", - "getDateInSeconds" : "DH 7/9/2018 11:21", - "isFlaggable" : "lvm 5/23/2018 13:15", - "open" : "lvm 5/24/2018 09:33", - "retrieveFlags" : "C.G. 6/26/2018 11:03" } } diff --git a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/properties.json b/packages/IMAPClient-Core.package/ICLoadOlderMail.class/properties.json deleted file mode 100644 index b60c1da7..00000000 --- a/packages/IMAPClient-Core.package/ICLoadOlderMail.class/properties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "category" : "IMAPClient-Core", - "classinstvars" : [ - "instance" ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "folderDialog" ], - "name" : "ICLoadOlderMail", - "pools" : [ - ], - "super" : "ICEmail", - "type" : "normal" } diff --git a/packages/IMAPClient-Core.package/ICNullStream.class/README.md b/packages/IMAPClient-Core.package/ICNullStream.class/README.md index 1480daf1..bd303411 100644 --- a/packages/IMAPClient-Core.package/ICNullStream.class/README.md +++ b/packages/IMAPClient-Core.package/ICNullStream.class/README.md @@ -1 +1 @@ -An ICNullStream is a Null Object resembling an ICStreamWrapper. \ No newline at end of file +An ICNullStream is a Null Object resembling an SocketStream. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICNullStream.class/properties.json b/packages/IMAPClient-Core.package/ICNullStream.class/properties.json index ccf4456c..1719d4bb 100644 --- a/packages/IMAPClient-Core.package/ICNullStream.class/properties.json +++ b/packages/IMAPClient-Core.package/ICNullStream.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "ms 7/28/2016 11:52", + "commentStamp" : "tg 7/25/2019 12:25", "instvars" : [ ], "name" : "ICNullStream", diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/README.md b/packages/IMAPClient-Core.package/ICServerInfo.class/README.md deleted file mode 100644 index c1fdb6a7..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/README.md +++ /dev/null @@ -1 +0,0 @@ -An ICServerInfo is a wrapper for a host-port-combination. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultHost.st b/packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultHost.st deleted file mode 100644 index 7e08bc2e..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultHost.st +++ /dev/null @@ -1,4 +0,0 @@ -constants -defaultHost - - ^ 'unknown' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/class/for.using..st b/packages/IMAPClient-Core.package/ICServerInfo.class/class/for.using..st deleted file mode 100644 index 6a915ae9..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/class/for.using..st +++ /dev/null @@ -1,6 +0,0 @@ -instance creation -for: host using: port - - ^ self new - host: host; - port: port \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host..st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host..st deleted file mode 100644 index 0827711f..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -host: anObject - - host := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host.st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host.st deleted file mode 100644 index 04d48494..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/host.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -host - - ^ host \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/initialize.st deleted file mode 100644 index 34404247..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/initialize.st +++ /dev/null @@ -1,5 +0,0 @@ -initialization -initialize - - self host: self class defaultHost. - self port: self class defaultPort \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/isValid.st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/isValid.st deleted file mode 100644 index abafe4ec..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/isValid.st +++ /dev/null @@ -1,4 +0,0 @@ -validation -isValid - - ^ self host ~= self class defaultHost and: [self port ~= self class defaultPort] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port..st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port..st deleted file mode 100644 index e0708f72..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -port: anObject - - port := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port.st b/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port.st deleted file mode 100644 index 3913b353..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/instance/port.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -port - - ^ port \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/methodProperties.json b/packages/IMAPClient-Core.package/ICServerInfo.class/methodProperties.json deleted file mode 100644 index 080c8e9a..00000000 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/methodProperties.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "class" : { - "defaultHost" : "js 5/15/2016 16:06", - "defaultPort" : "js 5/15/2016 16:07", - "for:using:" : "js 5/15/2016 16:38" }, - "instance" : { - "host" : "js 5/15/2016 16:02", - "host:" : "js 5/15/2016 16:02", - "initialize" : "C.G. 7/25/2018 14:08", - "isValid" : "C.G. 7/25/2018 14:08", - "port" : "js 5/15/2016 16:02", - "port:" : "js 5/15/2016 16:02" } } diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/class/connectionTimeout.st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/class/connectionTimeout.st new file mode 100644 index 00000000..19247f5f --- /dev/null +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/class/connectionTimeout.st @@ -0,0 +1,4 @@ +constants +connectionTimeout + + ^ 10 \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/connectTo.on..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/connectTo.on..st index 1b7e6541..16f88cb3 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/connectTo.on..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/connectTo.on..st @@ -1,10 +1,10 @@ connection -connectTo: host on: port +connectTo: aHost on: aPort | hostAddress | - self useSSL ifTrue: [^ self sslConnectTo: host on: port]. + self useSSL ifTrue: [^ self sslConnectTo: aHost on: aPort]. - hostAddress := NetNameResolver addressForName: host. + hostAddress := NetNameResolver addressForName: aHost. self close. - self stream: (SocketStream openConnectionToHost: hostAddress port: port) \ No newline at end of file + self stream: (SocketStream openConnectionToHost: hostAddress port: aPort) \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/host..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/host..st index 0827711f..8e89907c 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/host..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/host..st @@ -1,4 +1,4 @@ accessing -host: anObject +host: aString - host := anObject \ No newline at end of file + host := aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/initialize.st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/initialize.st deleted file mode 100644 index 7df41f20..00000000 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/initialize.st +++ /dev/null @@ -1,5 +0,0 @@ -initialization -initialize - - self stream: ICNullStream new. - self ssl: false \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/lastResponse..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/lastResponse..st index 084335d7..21c35674 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/lastResponse..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/lastResponse..st @@ -1,5 +1,4 @@ accessing -lastResponse: anObject +lastResponse: anOrderedCollection - Transcript show: 'RECEIVED: ', (anObject copy truncateTo:50); cr. - lastResponse := anObject \ No newline at end of file + lastResponse := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/port..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/port..st index e0708f72..776415e4 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/port..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/port..st @@ -1,4 +1,4 @@ accessing -port: anObject +port: aNumber - port := anObject \ No newline at end of file + port := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sendCommand..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sendCommand..st index 7b45972d..21169394 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sendCommand..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sendCommand..st @@ -1,5 +1,4 @@ connection sendCommand: aString - Transcript show: 'SENDING: ', aString; cr. self stream sendCommand: aString \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl..st index b1be2292..1e08ecbc 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl..st @@ -1,4 +1,4 @@ accessing -ssl: anObject +ssl: aBool - ssl := anObject \ No newline at end of file + ssl := aBool \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl.st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl.st index 36952b3d..9d7a41d0 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl.st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/ssl.st @@ -1,4 +1,4 @@ accessing ssl - ^ ssl \ No newline at end of file + ^ ssl ifNil: [ssl := false] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sslConnectTo.on..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sslConnectTo.on..st index b06d65ae..821816e4 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sslConnectTo.on..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/sslConnectTo.on..st @@ -1,8 +1,8 @@ connection -sslConnectTo: host on: port +sslConnectTo: aHost on: aPort | hostAddress | - hostAddress := NetNameResolver addressForName: host. - self stream: (SecureSocketStream openConnectionToHost: hostAddress port: port timeout: 10). - self stream sslConnectTo: host \ No newline at end of file + hostAddress := NetNameResolver addressForName: aHost. + self stream: (SecureSocketStream openConnectionToHost: hostAddress port: aPort timeout: self class connectionTimeout). + self stream sslConnectTo: aHost \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream..st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream..st index b355bd09..91158002 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream..st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream..st @@ -1,4 +1,4 @@ accessing -stream: anObject +stream: aStream - stream := anObject \ No newline at end of file + stream := aStream \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream.st b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream.st index 80c70fdb..637bfdc8 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream.st +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/instance/stream.st @@ -1,4 +1,4 @@ accessing stream - ^ stream \ No newline at end of file + ^ stream ifNil: [stream := ICNullStream new] \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICStreamWrapper.class/methodProperties.json b/packages/IMAPClient-Core.package/ICStreamWrapper.class/methodProperties.json index 2c8b5123..7f9acfef 100644 --- a/packages/IMAPClient-Core.package/ICStreamWrapper.class/methodProperties.json +++ b/packages/IMAPClient-Core.package/ICStreamWrapper.class/methodProperties.json @@ -1,23 +1,22 @@ { "class" : { - }, + "connectionTimeout" : "ok 7/26/2019 18:50" }, "instance" : { "close" : "js 6/14/2016 10:43", - "connectTo:on:" : "C.G. 7/25/2018 14:08", + "connectTo:on:" : "tg 7/26/2019 22:13", "connectTo:on:with:" : "C.G. 7/25/2018 14:08", "host" : "js 6/7/2016 09:58", "host:" : "js 6/7/2016 09:59", - "initialize" : "ms 7/12/2016 10:09", "isConnected" : "js 6/7/2016 10:04", "lastResponse" : "js 6/7/2016 10:08", - "lastResponse:" : "DH 7/8/2018 23:57", + "lastResponse:" : "ok 7/26/2019 21:15", "nextResponse" : "C.G. 7/25/2018 14:09", "port" : "js 6/7/2016 09:59", - "port:" : "js 6/7/2016 10:05", - "sendCommand:" : "DH 6/26/2018 20:20", - "ssl" : "ms 7/12/2016 09:45", + "port:" : "pm 6/9/2019 16:59", + "sendCommand:" : "tg 7/26/2019 21:57", + "ssl" : "pm 6/9/2019 13:14", "ssl:" : "ms 7/12/2016 09:45", - "sslConnectTo:on:" : "C.G. 7/25/2018 14:09", - "stream" : "js 6/7/2016 10:05", + "sslConnectTo:on:" : "tg 7/26/2019 22:13", + "stream" : "pm 6/9/2019 13:14", "stream:" : "js 6/7/2016 10:05", "useSSL" : "ms 7/12/2016 09:45" } } diff --git a/packages/IMAPClient-Protocol.package/.filetree b/packages/IMAPClient-Protocol.package/.filetree new file mode 100644 index 00000000..8998102c --- /dev/null +++ b/packages/IMAPClient-Protocol.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/packages/IMAPClient-Protocol.package/.squot-contents b/packages/IMAPClient-Protocol.package/.squot-contents new file mode 100644 index 00000000..239ddebb --- /dev/null +++ b/packages/IMAPClient-Protocol.package/.squot-contents @@ -0,0 +1,5 @@ +SquotTrackedObjectMetadata { + #objectClassName : #PackageInfo, + #objectsReplacedByNames : true, + #serializer : #SquotCypressCodeSerializer +} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/README.md b/packages/IMAPClient-Protocol.package/ICCommand.class/README.md new file mode 100644 index 00000000..a98eb80a --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/README.md @@ -0,0 +1,2 @@ +ICCommands builds commands to send to the server. +The commands are conform to the IMAProtocol. \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/allUIDs.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/allUIDs.st new file mode 100644 index 00000000..6ceb9b25 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/allUIDs.st @@ -0,0 +1,4 @@ +commands +allUIDs + + ^ self join: {'UID SEARCH ALL'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/deleteEmail..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/deleteEmail..st new file mode 100644 index 00000000..77647484 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/deleteEmail..st @@ -0,0 +1,4 @@ +commands +deleteEmail: aMessageId + + ^ self join: {'STORE' . aMessageId . '+FLAGS \Deleted'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/expungeEmail.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/expungeEmail.st new file mode 100644 index 00000000..a4d95a90 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/expungeEmail.st @@ -0,0 +1,4 @@ +commands +expungeEmail + + ^ self join: {'EXPUNGE'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchBody..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchBody..st new file mode 100644 index 00000000..58747ced --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchBody..st @@ -0,0 +1,4 @@ +commands +fetchBody: aMessageId + + ^ self join: {'FETCH' . aMessageId . 'body[TEXT]'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchFlagsForUIDsFrom.to..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchFlagsForUIDsFrom.to..st new file mode 100644 index 00000000..614a6948 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchFlagsForUIDsFrom.to..st @@ -0,0 +1,4 @@ +commands +fetchFlagsForUIDsFrom: aBeginUID to: anEndUID + + ^ self join: {'UID FETCH' . (aBeginUID asString, ':', anEndUID asString) . '(FLAGS)'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchHeadersForUIDsFrom.to..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchHeadersForUIDsFrom.to..st new file mode 100644 index 00000000..bc7cf2dc --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/fetchHeadersForUIDsFrom.to..st @@ -0,0 +1,7 @@ +commands +fetchHeadersForUIDsFrom: aBeginId to: anEndId + + ^ self join: { + 'UID FETCH' . + (aBeginId asString, ':', anEndId asString) . + '(FLAGS BODY.PEEK[HEADER.FIELDS (from to subject date content-type content-transfer-encoding)])'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/isValidFlag..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/isValidFlag..st new file mode 100644 index 00000000..8febe83b --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/isValidFlag..st @@ -0,0 +1,4 @@ +validation +isValidFlag: aFlagString + + ^ {'Seen' . 'Flagged'} includes: aFlagString withFirstCharacterUppercase \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/join..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/join..st new file mode 100644 index 00000000..3c417dd2 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/join..st @@ -0,0 +1,6 @@ +command building +join: aCommandArray + + ^ aCommandArray asOrderedCollection + addFirst: self protocolCommandStart; + joinSeparatedBy: self protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/listSubfoldersOf.filterBy..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/listSubfoldersOf.filterBy..st new file mode 100644 index 00000000..eefb6719 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/listSubfoldersOf.filterBy..st @@ -0,0 +1,4 @@ +commands +listSubfoldersOf: aFolder filterBy: aFilter + + ^ self join: {'LIST' . self putInQuotes: aFolder . self putInQuotes: aFilter} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/loginWith..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/loginWith..st new file mode 100644 index 00000000..26293144 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/loginWith..st @@ -0,0 +1,4 @@ +commands +loginWith: anAccountInfo + + ^ self join: {'LOGIN' . anAccountInfo usernameAsIMAPString . anAccountInfo passwordAsIMAPString} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/logout.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/logout.st new file mode 100644 index 00000000..cd7c8db6 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/logout.st @@ -0,0 +1,4 @@ +commands +logout + + ^ self join: {'LOGOUT'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/moveEmail.to..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/moveEmail.to..st new file mode 100644 index 00000000..2dce1cdb --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/moveEmail.to..st @@ -0,0 +1,4 @@ +commands +moveEmail: aMessageId to: aFolder + + ^ self join: {'MOVE' . aMessageId . self putInQuotes: aFolder} diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/noop.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/noop.st new file mode 100644 index 00000000..87ca0330 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/noop.st @@ -0,0 +1,4 @@ +commands +noop + + ^ self join: {'NOOP'} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolBlank.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolBlank.st similarity index 100% rename from packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolBlank.st rename to packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolBlank.st diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolCommandStart.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolCommandStart.st similarity index 82% rename from packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolCommandStart.st rename to packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolCommandStart.st index 5d918148..4b0cd3c3 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolCommandStart.st +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolCommandStart.st @@ -1,4 +1,4 @@ constants protocolCommandStart - ^ '.' \ No newline at end of file + ^ '.' \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolQuote.st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolQuote.st similarity index 100% rename from packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolQuote.st rename to packages/IMAPClient-Protocol.package/ICCommand.class/class/protocolQuote.st diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/putInQuotes..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/putInQuotes..st new file mode 100644 index 00000000..437a3e34 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/putInQuotes..st @@ -0,0 +1,4 @@ +command building +putInQuotes: aString + + ^ ICCommand protocolQuote, aString, ICCommand protocolQuote \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/resetFlag.for..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/resetFlag.for..st new file mode 100644 index 00000000..9a9c43f0 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/resetFlag.for..st @@ -0,0 +1,5 @@ +commands +resetFlag: aFlagString for: aMessageId + + (self isValidFlag: aFlagString) ifFalse: [self error: 'Trying to send invalid Flag']. + ^ self join: {'STORE' . aMessageId . '-FLAGS \', aFlagString withFirstCharacterUppercase} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/select..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/select..st new file mode 100644 index 00000000..bc95f61d --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/select..st @@ -0,0 +1,4 @@ +commands +select: aFolder + + ^ self join: {'SELECT' . self putInQuotes: aFolder} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/class/setFlag.for..st b/packages/IMAPClient-Protocol.package/ICCommand.class/class/setFlag.for..st new file mode 100644 index 00000000..56013352 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/class/setFlag.for..st @@ -0,0 +1,5 @@ +commands +setFlag: aFlagString for: aMessageId + + (self isValidFlag: aFlagString) ifFalse: [self error: 'Trying to send invalid Flag']. + ^ self join: {'STORE' . aMessageId . '+FLAGS \', aFlagString withFirstCharacterUppercase} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICCommand.class/methodProperties.json b/packages/IMAPClient-Protocol.package/ICCommand.class/methodProperties.json new file mode 100644 index 00000000..538e6957 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/methodProperties.json @@ -0,0 +1,24 @@ +{ + "class" : { + "allUIDs" : "pm 7/23/2019 14:18", + "deleteEmail:" : "pm 7/23/2019 14:46", + "expungeEmail" : "pm 7/23/2019 14:19", + "fetchBody:" : "pm 7/23/2019 14:48", + "fetchFlagsForUIDsFrom:to:" : "pm 7/24/2019 21:18", + "fetchHeadersForUIDsFrom:to:" : "pm 7/24/2019 21:18", + "isValidFlag:" : "tg 7/26/2019 13:45", + "join:" : "pm 7/24/2019 21:24", + "listSubfoldersOf:filterBy:" : "pm 7/23/2019 14:50", + "loginWith:" : "pm 7/23/2019 14:52", + "logout" : "pm 7/23/2019 14:53", + "moveEmail:to:" : "pm 7/23/2019 14:54", + "noop" : "pm 7/23/2019 15:09", + "protocolBlank" : "pm 7/24/2019 21:21", + "protocolCommandStart" : "pm 7/24/2019 21:21", + "protocolQuote" : "pm 7/24/2019 21:21", + "putInQuotes:" : "pm 7/25/2019 17:25", + "resetFlag:for:" : "pm 7/23/2019 18:29", + "select:" : "pm 7/23/2019 18:24", + "setFlag:for:" : "pm 7/23/2019 18:29" }, + "instance" : { + } } diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/properties.json b/packages/IMAPClient-Protocol.package/ICCommand.class/properties.json similarity index 51% rename from packages/IMAPClient-Core.package/ICServerInfo.class/properties.json rename to packages/IMAPClient-Protocol.package/ICCommand.class/properties.json index ab2e9dc6..a68e9fdf 100644 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/properties.json +++ b/packages/IMAPClient-Protocol.package/ICCommand.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "IMAPClient-Core", + "category" : "IMAPClient-Protocol", "classinstvars" : [ ], "classvars" : [ ], - "commentStamp" : "ms 7/28/2016 11:53", + "commentStamp" : "pm 7/23/2019 15:11", "instvars" : [ - "host", - "port" ], - "name" : "ICServerInfo", + ], + "name" : "ICCommand", "pools" : [ ], "super" : "Object", diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/README.md b/packages/IMAPClient-Protocol.package/ICParser.class/README.md new file mode 100644 index 00000000..b307024b --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/README.md @@ -0,0 +1 @@ +An ICParser is a stateless method bin that can parse a header, email body and folder path from a response. \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/buildFlagsAssociationFor.from..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/buildFlagsAssociationFor.from..st new file mode 100644 index 00000000..412619ab --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/buildFlagsAssociationFor.from..st @@ -0,0 +1,5 @@ +parsing +buildFlagsAssociationFor: aUidString from: aLineString + + ^ Association key: aUidString first value: (self flags select: [:flag | + aLineString includesSubString: flag]) \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/chop.forEmail..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/chop.forEmail..st new file mode 100644 index 00000000..f723d9b7 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/chop.forEmail..st @@ -0,0 +1,10 @@ +parsing +chop: aHeaderString forEmail: anEmail + + | headerChunks | + + headerChunks := OrderedCollection new. + (aHeaderString subStrings: Character cr asString) do: [:line | + self parse: line forHeaderChunks: headerChunks forEmail: anEmail]. + + ^ headerChunks \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/closeEmailContentFrom.for..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/closeEmailContentFrom.for..st new file mode 100644 index 00000000..ad9a8cb9 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/closeEmailContentFrom.for..st @@ -0,0 +1,5 @@ +parsing +closeEmailContentFrom: aStream for: anEmailString + + anEmailString nextPutAll: (aStream nextDelimited: $)). + aStream next \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded..st new file mode 100644 index 00000000..380b4889 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded..st @@ -0,0 +1,4 @@ +parsing +commandSucceeded: aResponseString + + ^ aResponseString beginsWith: self commandSucceeded \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded.st new file mode 100644 index 00000000..9ac21fc0 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/commandSucceeded.st @@ -0,0 +1,4 @@ +responses +commandSucceeded + + ^ {ICCommand protocolCommandStart . 'OK'} joinSeparatedBy: ICCommand protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/continueHeaderChunks.withLine..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/continueHeaderChunks.withLine..st new file mode 100644 index 00000000..a4994e2f --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/continueHeaderChunks.withLine..st @@ -0,0 +1,8 @@ +parsing +continueHeaderChunks: aCollection withLine: aString + + (self startsNewHeaderChunk: aString) + ifTrue: [aCollection add: {aString} asOrderedCollection] + ifFalse: [ + aCollection ifNotEmpty: [ + aCollection last add: aString]] \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/continueMailStream.into..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/continueMailStream.into..st new file mode 100644 index 00000000..91ff9d83 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/continueMailStream.into..st @@ -0,0 +1,8 @@ +parsing +continueMailStream: aStream into: anEmailStringCollection + + | id | + + id := self readMessageIdFromStream: aStream. + anEmailStringCollection at: id put: (String streamContents: [:email | + self extractEmailContentFrom: aStream for: email]) \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/extractEmailContentFrom.for..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/extractEmailContentFrom.for..st new file mode 100644 index 00000000..4b840f3b --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/extractEmailContentFrom.for..st @@ -0,0 +1,8 @@ +parsing +extractEmailContentFrom: aStream for: anEmailString + + | octetSize | + + octetSize := self readOctetSizeFrom: aStream for: anEmailString. + self readEmailContentFrom: aStream for: anEmailString bySize: octetSize. + self closeEmailContentFrom: aStream for: anEmailString \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/fetchBodyOffset.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/fetchBodyOffset.st new file mode 100644 index 00000000..5483ad06 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/fetchBodyOffset.st @@ -0,0 +1,4 @@ +constants +fetchBodyOffset + + ^ 2 \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/flags.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/flags.st new file mode 100644 index 00000000..992e7fe7 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/flags.st @@ -0,0 +1,4 @@ +constants +flags + + ^ {'\Seen'. '\Deleted'. '\Flagged'} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfEmailPrefix.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfEmailPrefix.st new file mode 100644 index 00000000..378cdab2 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfEmailPrefix.st @@ -0,0 +1,4 @@ +constants +lengthOfEmailPrefix + + ^ '* ' size \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfFetchPrefix.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfFetchPrefix.st new file mode 100644 index 00000000..5d0e0d64 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/lengthOfFetchPrefix.st @@ -0,0 +1,4 @@ +constants +lengthOfFetchPrefix + + ^ 'FETCH (' size \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/parameterErrorPosition.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parameterErrorPosition.st similarity index 73% rename from packages/IMAPClient-Core.package/ICEndPoint.class/class/parameterErrorPosition.st rename to packages/IMAPClient-Protocol.package/ICParser.class/class/parameterErrorPosition.st index 7ea103e8..f9a4da0c 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/class/parameterErrorPosition.st +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parameterErrorPosition.st @@ -1,4 +1,4 @@ -commands +constants parameterErrorPosition ^ 2 \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parse.forHeaderChunks.forEmail..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parse.forHeaderChunks.forEmail..st new file mode 100644 index 00000000..84640a5b --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parse.forHeaderChunks.forEmail..st @@ -0,0 +1,6 @@ +parsing +parse: aString forHeaderChunks: aHeaderChunksCollection forEmail: anEmail + + (aString includesSubString: 'UID') + ifTrue: [anEmail uniqueID: ((aString subStrings: ' ') second)] + ifFalse: [self continueHeaderChunks: aHeaderChunksCollection withLine: aString] \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchBody..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchBody..st new file mode 100644 index 00000000..bdc3acdd --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchBody..st @@ -0,0 +1,7 @@ +parsing +parseFetchBody: aResponseStringArray + + ^ ((aResponseStringArray + copyFrom: self fetchBodyOffset + to: (aResponseStringArray size - 1)) + joinSeparatedBy: Character cr) \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchHeader.withId..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchHeader.withId..st new file mode 100644 index 00000000..0e1bc178 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchHeader.withId..st @@ -0,0 +1,9 @@ +parsing +parseFetchHeader: aHeaderString withId: aMessageID + + | email | + + email := ICEmail new messageID: aMessageID. + self populate: email withHeaderChunks: (self chop: aHeaderString forEmail: email). + + ^ email \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchMailStream..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchMailStream..st new file mode 100644 index 00000000..a62543cb --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchMailStream..st @@ -0,0 +1,9 @@ +parsing +parseFetchMailStream: aStream + + | emails | + + emails := Dictionary new. + [aStream atEnd] whileFalse: [self continueMailStream: aStream into: emails]. + + ^ emails \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchedFlagsAndPopulate..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchedFlagsAndPopulate..st new file mode 100644 index 00000000..559369ff --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFetchedFlagsAndPopulate..st @@ -0,0 +1,9 @@ +parsing +parseFetchedFlagsAndPopulate: aResponseStringArray + + | uidPart uid | + + ^ (aResponseStringArray collect: [:line | + uidPart := (line allRegexMatches: 'UID \d*') ifEmpty: [ ^ Dictionary new]. + uid := (uidPart first allRegexMatches: '[\d]+') ifEmpty: [ ^ Dictionary new]. + self buildFlagsAssociationFor: uid from: line]) as: Dictionary \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFolderPathFrom..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFolderPathFrom..st new file mode 100644 index 00000000..449516bd --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseFolderPathFrom..st @@ -0,0 +1,9 @@ +parsing +parseFolderPathFrom: aResponseString + + | splittedResponse | + + splittedResponse := self splitFolderPathResponse: aResponseString. + ^ ICProtocolFolder + newWithPath: (splittedResponse allButFirst joinSeparatedBy: ' ') + delimitedBy: splittedResponse first \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderContentFrom..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderContentFrom..st new file mode 100644 index 00000000..f9b6866e --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderContentFrom..st @@ -0,0 +1,7 @@ +parsing +parseHeaderContentFrom: aHeaderChunk + + ^ ((aHeaderChunk joinSeparatedBy: ' ') + copyReplaceFrom: 1 + to: (aHeaderChunk first indexOf: $:) + with: String empty) withoutLeadingBlanks \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderFieldFrom..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderFieldFrom..st new file mode 100644 index 00000000..d6b66ef5 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseHeaderFieldFrom..st @@ -0,0 +1,9 @@ +parsing +parseHeaderFieldFrom: aHeaderChunk + + | headerField | + + headerField := (aHeaderChunk first subStrings: ' ') first. + (headerField includesSubString: ':') ifTrue: [headerField := headerField allButLast]. + + ^ headerField \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/parseMethods.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseMethods.st new file mode 100644 index 00000000..e8e2a17d --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/parseMethods.st @@ -0,0 +1,12 @@ +constants +parseMethods + + ^ Dictionary newFrom: { + 'To' -> [:headerChunk :email | self populate: email withReceiver: headerChunk]. + 'From' -> [:headerChunk :email | self populate: email withSender: headerChunk]. + 'Subject' -> [:headerChunk :email | self populate: email withSubject: headerChunk]. + 'Date' -> [:headerChunk :email | self populate: email withDate: headerChunk]. + 'FLAGS' -> [:headerChunk :email | self populate: email withFlags: headerChunk]. + 'Content-Type' -> [:headerChunk :email | self populate: email withContentType: headerChunk]. + 'Content-Transfer-Encoding' -> [:headerChunk :email | + self populate: email withContentTransferEncoding: headerChunk]} \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentTransferEncoding..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentTransferEncoding..st new file mode 100644 index 00000000..6eca23ef --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentTransferEncoding..st @@ -0,0 +1,4 @@ +parsing +populate: anEmail withContentTransferEncoding: aHeaderChunk + + anEmail contentTransferEncoding: aHeaderChunk \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentType..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentType..st new file mode 100644 index 00000000..3ea63621 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withContentType..st @@ -0,0 +1,4 @@ +parsing +populate: anEmail withContentType: aHeaderChunk + + anEmail contentType: aHeaderChunk \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withDate..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withDate..st new file mode 100644 index 00000000..00233419 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withDate..st @@ -0,0 +1,4 @@ +parsing +populate: anEmail withDate: aHeaderChunk + + anEmail date: aHeaderChunk \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withFlags..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withFlags..st new file mode 100644 index 00000000..09d9b194 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withFlags..st @@ -0,0 +1,6 @@ +parsing +populate: anEmail withFlags: aHeaderChunk + + anEmail seen: (aHeaderChunk includesSubString: '\Seen'). + anEmail flagged: (aHeaderChunk includesSubString: '\Flagged'). + anEmail deleted: (aHeaderChunk includesSubString: '\Deleted') \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeaderChunks..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeaderChunks..st new file mode 100644 index 00000000..35d54848 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeaderChunks..st @@ -0,0 +1,5 @@ +parsing +populate: anEmail withHeaderChunks: aHeaderChunkCollection + + aHeaderChunkCollection do: [:chunk | + self populate: anEmail withHeadersFrom: chunk] \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeadersFrom..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeadersFrom..st new file mode 100644 index 00000000..98ef5322 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withHeadersFrom..st @@ -0,0 +1,10 @@ +parsing +populate: anEmail withHeadersFrom: aHeaderChunk + + | headerField headerContent method | + + headerField := self parseHeaderFieldFrom: aHeaderChunk. + headerContent := self parseHeaderContentFrom: aHeaderChunk. + method := (self parseMethods at: headerField ifAbsent: nil). + method ifNil: [Transcript show: 'WARNING: No method for parsing Header field:', headerField; cr] + ifNotNil: [method value: headerContent value: anEmail] \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withReceiver..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withReceiver..st new file mode 100644 index 00000000..05c701a7 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withReceiver..st @@ -0,0 +1,4 @@ +parsing +populate: anEmail withReceiver: aHeaderChunk + + anEmail to: (aHeaderChunk subStrings: ',') asOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSender..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSender..st new file mode 100644 index 00000000..f45173cb --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSender..st @@ -0,0 +1,4 @@ +parsing +populate: anEmail withSender: aHeaderChunk + + anEmail from: aHeaderChunk \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSubject..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSubject..st new file mode 100644 index 00000000..41787838 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/populate.withSubject..st @@ -0,0 +1,6 @@ +parsing +populate: anEmail withSubject: aHeaderChunk + + [anEmail subject: aHeaderChunk decodeMimeHeader] + on: Error + do: [self inform: ('A mail in your account has a undecodeable MIME header')] \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/protocolError.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/protocolError.st new file mode 100644 index 00000000..36af375e --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/protocolError.st @@ -0,0 +1,4 @@ +responses +protocolError + + ^ {ICCommand protocolCommandStart . 'BAD'} joinSeparatedBy: ICCommand protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolParameterError.st b/packages/IMAPClient-Protocol.package/ICParser.class/class/protocolParameterError.st similarity index 100% rename from packages/IMAPClient-Core.package/ICEndPoint.class/class/protocolParameterError.st rename to packages/IMAPClient-Protocol.package/ICParser.class/class/protocolParameterError.st diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentCharacterFrom.for..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentCharacterFrom.for..st new file mode 100644 index 00000000..2f2ddfd1 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentCharacterFrom.for..st @@ -0,0 +1,9 @@ +parsing +readEmailContentCharacterFrom: aStream for: anEmailString + + | char | + + char := (aStream next) asCharacter. + anEmailString nextPut: char. + (char = Character cr) ifTrue: [^2]. + ^ 1 \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentFrom.for.bySize..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentFrom.for.bySize..st new file mode 100644 index 00000000..012d47c2 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/readEmailContentFrom.for.bySize..st @@ -0,0 +1,8 @@ +parsing +readEmailContentFrom: aStream for: anEmailString bySize: anOctetSize + + | charsLeft | + + charsLeft := anOctetSize. + [charsLeft > 0] whileTrue: [ + charsLeft := charsLeft - (self readEmailContentCharacterFrom: aStream for: anEmailString)]. \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/readMessageIdFromStream..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/readMessageIdFromStream..st new file mode 100644 index 00000000..5217910f --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/readMessageIdFromStream..st @@ -0,0 +1,10 @@ +parsing +readMessageIdFromStream: aStream + + | id | + + aStream next: self lengthOfEmailPrefix. + id := aStream nextDelimited: Character space. + aStream next: self lengthOfFetchPrefix. + + ^ id \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/readOctetSizeFrom.for..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/readOctetSizeFrom.for..st new file mode 100644 index 00000000..3b89190a --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/readOctetSizeFrom.for..st @@ -0,0 +1,5 @@ +parsing +readOctetSizeFrom: aStream for: anEmailString + + anEmailString nextPutAll: (aStream nextDelimited: ${). + ^ (aStream nextDelimited: $}) asNumber \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsError..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsError..st new file mode 100644 index 00000000..857a8bdf --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsError..st @@ -0,0 +1,4 @@ +parsing +responseIsError: aResponseString + + ^ aResponseString beginsWith: self protocolError \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsParameterError..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsParameterError..st new file mode 100644 index 00000000..74da3bf0 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/responseIsParameterError..st @@ -0,0 +1,6 @@ +parsing +responseIsParameterError: aResponseString + + ^ self protocolParameterError = + ((aResponseString subStrings: ICCommand protocolBlank) + at: self parameterErrorPosition) \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/class/splitFolderPathResponse..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/splitFolderPathResponse..st new file mode 100644 index 00000000..22fa171c --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/splitFolderPathResponse..st @@ -0,0 +1,5 @@ +parsing +splitFolderPathResponse: aResponseString + + ^ (aResponseString copyReplaceAll: ICCommand protocolQuote with: String empty) + subStrings: ICCommand protocolBlank \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/startsNewHeaderChunk..st b/packages/IMAPClient-Protocol.package/ICParser.class/class/startsNewHeaderChunk..st similarity index 89% rename from packages/IMAPClient-Core.package/ICEndPoint.class/instance/startsNewHeaderChunk..st rename to packages/IMAPClient-Protocol.package/ICParser.class/class/startsNewHeaderChunk..st index b06a049b..78412729 100644 --- a/packages/IMAPClient-Core.package/ICEndPoint.class/instance/startsNewHeaderChunk..st +++ b/packages/IMAPClient-Protocol.package/ICParser.class/class/startsNewHeaderChunk..st @@ -1,4 +1,4 @@ -fetching +parsing startsNewHeaderChunk: aLine ^ (aLine subStrings: ' ') first endsWith: ':' \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICParser.class/methodProperties.json b/packages/IMAPClient-Protocol.package/ICParser.class/methodProperties.json new file mode 100644 index 00000000..a8931b78 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICParser.class/methodProperties.json @@ -0,0 +1,45 @@ +{ + "class" : { + "buildFlagsAssociationFor:from:" : "ok 7/26/2019 17:39", + "chop:forEmail:" : "ok 7/26/2019 16:25", + "closeEmailContentFrom:for:" : "ok 7/26/2019 17:09", + "commandSucceeded" : "pm 7/25/2019 17:26", + "commandSucceeded:" : "pm 7/15/2019 20:40", + "continueHeaderChunks:withLine:" : "ok 7/26/2019 15:44", + "continueMailStream:into:" : "ok 7/26/2019 17:07", + "extractEmailContentFrom:for:" : "ok 7/26/2019 17:25", + "fetchBodyOffset" : "ok 7/26/2019 18:10", + "flags" : "pm 7/12/2019 18:35", + "lengthOfEmailPrefix" : "ok 7/26/2019 16:31", + "lengthOfFetchPrefix" : "mt 7/26/2019 15:44", + "parameterErrorPosition" : "pm 7/23/2019 13:31", + "parse:forHeaderChunks:forEmail:" : "ok 7/26/2019 16:23", + "parseFetchBody:" : "ok 7/26/2019 18:12", + "parseFetchHeader:withId:" : "ok 7/26/2019 18:01", + "parseFetchMailStream:" : "ok 7/26/2019 16:57", + "parseFetchedFlagsAndPopulate:" : "ok 7/26/2019 17:39", + "parseFolderPathFrom:" : "ok 7/26/2019 18:06", + "parseHeaderContentFrom:" : "ok 7/26/2019 17:58", + "parseHeaderFieldFrom:" : "tg 7/26/2019 20:26", + "parseMethods" : "pm 7/25/2019 17:40", + "populate:withContentTransferEncoding:" : "pm 7/25/2019 17:36", + "populate:withContentType:" : "pm 7/25/2019 17:37", + "populate:withDate:" : "pm 7/25/2019 17:37", + "populate:withFlags:" : "pm 7/25/2019 17:37", + "populate:withHeaderChunks:" : "ok 7/26/2019 16:24", + "populate:withHeadersFrom:" : "ok 7/26/2019 17:58", + "populate:withReceiver:" : "pm 7/25/2019 17:37", + "populate:withSender:" : "pm 7/25/2019 17:38", + "populate:withSubject:" : "tg 7/26/2019 21:01", + "protocolError" : "pm 7/25/2019 17:26", + "protocolParameterError" : "pm 7/12/2019 17:22", + "readEmailContentCharacterFrom:for:" : "tg 7/26/2019 21:04", + "readEmailContentFrom:for:bySize:" : "ok 7/26/2019 17:21", + "readMessageIdFromStream:" : "ok 7/26/2019 17:07", + "readOctetSizeFrom:for:" : "ok 7/26/2019 17:24", + "responseIsError:" : "pm 7/25/2019 17:51", + "responseIsParameterError:" : "pm 7/25/2019 17:53", + "splitFolderPathResponse:" : "ok 7/26/2019 18:04", + "startsNewHeaderChunk:" : "pm 7/12/2019 20:07" }, + "instance" : { + } } diff --git a/packages/IMAPClient-Core.package/ICHelper.class/properties.json b/packages/IMAPClient-Protocol.package/ICParser.class/properties.json similarity index 57% rename from packages/IMAPClient-Core.package/ICHelper.class/properties.json rename to packages/IMAPClient-Protocol.package/ICParser.class/properties.json index 973a2de2..1b8aa497 100644 --- a/packages/IMAPClient-Core.package/ICHelper.class/properties.json +++ b/packages/IMAPClient-Protocol.package/ICParser.class/properties.json @@ -1,13 +1,13 @@ { - "category" : "IMAPClient-Core", + "category" : "IMAPClient-Protocol", "classinstvars" : [ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "pm 7/12/2019 20:20", "instvars" : [ ], - "name" : "ICHelper", + "name" : "ICParser", "pools" : [ ], "super" : "Object", diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/README.md b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/README.md new file mode 100644 index 00000000..a25aedaf --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/README.md @@ -0,0 +1,5 @@ +An ICProtocolFolder is a wrapper for a folder and contains a folder path and a hierarchy delimiter + +Instance Variables + folderPath: String + hierarchyDelimiter: String diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/class/newWithPath.delimitedBy..st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/class/newWithPath.delimitedBy..st new file mode 100644 index 00000000..4f926e04 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/class/newWithPath.delimitedBy..st @@ -0,0 +1,6 @@ +instance creation +newWithPath: aFolderPathString delimitedBy: aHierarchyDelimiterString + + ^ self new + folderPath: aFolderPathString; + hierarchyDelimiter: aHierarchyDelimiterString \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath..st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath..st new file mode 100644 index 00000000..2510918d --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath..st @@ -0,0 +1,4 @@ +accessing +folderPath: aFolderPathString + + folderPath := aFolderPathString \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath.st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath.st new file mode 100644 index 00000000..dbfe05e3 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/folderPath.st @@ -0,0 +1,4 @@ +accessing +folderPath + + ^ folderPath \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter..st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter..st new file mode 100644 index 00000000..a91f115e --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter..st @@ -0,0 +1,4 @@ +accessing +hierarchyDelimiter: aHierarchyDelimiterString + + hierarchyDelimiter := aHierarchyDelimiterString \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter.st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter.st new file mode 100644 index 00000000..e25fa332 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/hierarchyDelimiter.st @@ -0,0 +1,4 @@ +accessing +hierarchyDelimiter + + ^ hierarchyDelimiter \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/pathAsArray.st b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/pathAsArray.st new file mode 100644 index 00000000..b9c90401 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/instance/pathAsArray.st @@ -0,0 +1,4 @@ +accessing +pathAsArray + + ^ self folderPath subStrings: self hierarchyDelimiter \ No newline at end of file diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/methodProperties.json b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/methodProperties.json new file mode 100644 index 00000000..35de45f7 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/methodProperties.json @@ -0,0 +1,9 @@ +{ + "class" : { + "newWithPath:delimitedBy:" : "pm 7/12/2019 18:06" }, + "instance" : { + "folderPath" : "pm 7/12/2019 18:04", + "folderPath:" : "pm 7/12/2019 18:05", + "hierarchyDelimiter" : "pm 7/12/2019 18:00", + "hierarchyDelimiter:" : "pm 7/12/2019 18:00", + "pathAsArray" : "pm 7/12/2019 18:07" } } diff --git a/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/properties.json b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/properties.json new file mode 100644 index 00000000..8f36bdc2 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/ICProtocolFolder.class/properties.json @@ -0,0 +1,15 @@ +{ + "category" : "IMAPClient-Protocol", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "pm 7/12/2019 18:04", + "instvars" : [ + "hierarchyDelimiter", + "folderPath" ], + "name" : "ICProtocolFolder", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/IMAPClient-Protocol.package/monticello.meta/categories.st b/packages/IMAPClient-Protocol.package/monticello.meta/categories.st new file mode 100644 index 00000000..0208e5d7 --- /dev/null +++ b/packages/IMAPClient-Protocol.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'IMAPClient-Protocol'! diff --git a/packages/IMAPClient-Core.package/ICFetchResponseParser.class/README.md b/packages/IMAPClient-Protocol.package/monticello.meta/initializers.st similarity index 100% rename from packages/IMAPClient-Core.package/ICFetchResponseParser.class/README.md rename to packages/IMAPClient-Protocol.package/monticello.meta/initializers.st diff --git a/packages/IMAPClient-Protocol.package/properties.json b/packages/IMAPClient-Protocol.package/properties.json new file mode 100644 index 00000000..f037444a --- /dev/null +++ b/packages/IMAPClient-Protocol.package/properties.json @@ -0,0 +1,2 @@ +{ + } diff --git a/packages/IMAPClient-Tests.package/.squot-contents b/packages/IMAPClient-Tests.package/.squot-contents index 460ade30..4ad0c330 100644 --- a/packages/IMAPClient-Tests.package/.squot-contents +++ b/packages/IMAPClient-Tests.package/.squot-contents @@ -1,4 +1,4 @@ SquotTrackedObjectMetadata { #objectClassName : #PackageInfo, #serializer : #SquotCypressCodeSerializer -} +} \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/README.md b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/README.md new file mode 100644 index 00000000..225607e2 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/README.md @@ -0,0 +1 @@ +This tests the ICAuthenticationInfo class by asserting IMAP conformity and argument count. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidPassword.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidPassword.st new file mode 100644 index 00000000..23c6e7b6 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidPassword.st @@ -0,0 +1,4 @@ +constants +invalidPassword + + ^ 'foo bar " \ ' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidUsername.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidUsername.st new file mode 100644 index 00000000..c0433018 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/invalidUsername.st @@ -0,0 +1,4 @@ +constants +invalidUsername + + ^ 'user1 " \ ' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validAccountName.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validAccountName.st new file mode 100644 index 00000000..b30d39ad --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validAccountName.st @@ -0,0 +1,4 @@ +constants +validAccountName + + ^ 'validAccountName' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validHost.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validHost.st new file mode 100644 index 00000000..fc8e0577 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validHost.st @@ -0,0 +1,4 @@ +constants +validHost + + ^ 'valid.host' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPassword.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPassword.st new file mode 100644 index 00000000..0a5074b5 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPassword.st @@ -0,0 +1,4 @@ +constants +validPassword + + ^ 'foo bar' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPort.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPort.st new file mode 100644 index 00000000..27c2b5fc --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validPort.st @@ -0,0 +1,4 @@ +constants +validPort + + ^ 993 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validUsername.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validUsername.st new file mode 100644 index 00000000..fbd7a0c5 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/class/validUsername.st @@ -0,0 +1,4 @@ +constants +validUsername + + ^ 'user1' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo..st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo..st new file mode 100644 index 00000000..4cae37c2 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo..st @@ -0,0 +1,3 @@ +accessing +accountInfo: anICAccountInfo + accountInfo := anICAccountInfo \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo.st new file mode 100644 index 00000000..8d15c789 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/accountInfo.st @@ -0,0 +1,3 @@ +accessing +accountInfo + ^ accountInfo \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/setUp.st new file mode 100644 index 00000000..1be2152a --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/setUp.st @@ -0,0 +1,11 @@ +running +setUp + + self accountInfo: ((ICAccountInfo new) + accountName: self class validAccountName; + host: self class validHost; + port: self class validPort; + username: self class validUsername; + password: self class validPassword; + ssl: true) + \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForArgumentCount.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForArgumentCount.st new file mode 100644 index 00000000..23aaaa8e --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForArgumentCount.st @@ -0,0 +1,5 @@ +testing +testForArgumentCount + + self assert: ['\".*\"' asRegex matches: self accountInfo usernameAsIMAPString]. + self assert: ['\".*\"' asRegex matches: self accountInfo passwordAsIMAPString]. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForValidIMAPString.st b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForValidIMAPString.st new file mode 100644 index 00000000..83af96db --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/instance/testForValidIMAPString.st @@ -0,0 +1,6 @@ +testing +testForValidIMAPString + + self should: [self accountInfo username: self class invalidUsername] raise: Error. + self should: [self accountInfo password: self class invalidPassword] raise: Error. + \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/methodProperties.json new file mode 100644 index 00000000..175d1dd9 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/methodProperties.json @@ -0,0 +1,15 @@ +{ + "class" : { + "invalidPassword" : "tg 5/9/2019 13:03", + "invalidUsername" : "tg 5/9/2019 13:04", + "validAccountName" : "tg 7/10/2019 19:37", + "validHost" : "tg 7/10/2019 19:37", + "validPassword" : "tg 7/10/2019 19:36", + "validPort" : "tg 7/10/2019 19:38", + "validUsername" : "tg 7/10/2019 19:36" }, + "instance" : { + "accountInfo" : "tg 7/10/2019 18:44", + "accountInfo:" : "tg 7/10/2019 18:44", + "setUp" : "mt 7/26/2019 14:21", + "testForArgumentCount" : "tg 7/10/2019 18:45", + "testForValidIMAPString" : "mt 7/26/2019 14:29" } } diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/properties.json b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/properties.json similarity index 64% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/properties.json rename to packages/IMAPClient-Tests.package/ICAccountInfoTest.class/properties.json index a0e7fee5..3aab6ebe 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICAccountInfoTest.class/properties.json @@ -4,11 +4,10 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:40", "instvars" : [ - "endpoint", - "parser" ], - "name" : "ICFetchResponseParserTest", + "accountInfo" ], + "name" : "ICAccountInfoTest", "pools" : [ ], "super" : "TestCase", diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/README.md b/packages/IMAPClient-Tests.package/ICDeployment.class/README.md new file mode 100644 index 00000000..89e19a8c --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/README.md @@ -0,0 +1,2 @@ +This class supports automatic releases via travis. It is not used for testing but enables automatic sar bulding. +As the build takes longer than 5 seconds a custom timeout is set in setUp. This enforces fast builds as well \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/class/createMCZfor.in..st b/packages/IMAPClient-Tests.package/ICDeployment.class/class/createMCZfor.in..st new file mode 100644 index 00000000..9856cdf8 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/class/createMCZfor.in..st @@ -0,0 +1,10 @@ +release building +createMCZfor: aPackageName in: aZIP + +| mczStream workingCopy version | + +mczStream := RWBinaryOrTextStream on: (String new: 10000). +workingCopy := MCWorkingCopy forPackage: (MCPackage new name: aPackageName). +version := workingCopy newVersionWithName: aPackageName message: ('new ', aPackageName , ' release'). +version fileOutOn: mczStream. +(aZIP addString: mczStream contents as: (aPackageName, '.mcz')) desiredCompressionLevel: 0. diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/class/packagesToDeploy.st b/packages/IMAPClient-Tests.package/ICDeployment.class/class/packagesToDeploy.st new file mode 100644 index 00000000..af4fb710 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/class/packagesToDeploy.st @@ -0,0 +1,4 @@ +release building +packagesToDeploy + + ^ {'IMAPClient-Core'. 'IMAPClient-UI'. 'IMAPClient-Protocol'} \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/class/preambleString.st b/packages/IMAPClient-Tests.package/ICDeployment.class/class/preambleString.st new file mode 100644 index 00000000..13291a17 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/class/preambleString.st @@ -0,0 +1,7 @@ +release building +preambleString + + ^ ((self packagesToDeploy collect: [:packageName | + 'self fileInMonticelloZipVersionNamed: ''', packageName, '.mcz''.']) joinSeparatedBy: String cr), + String cr, + 'ICFolderDialog install.' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/class/releaseName.st b/packages/IMAPClient-Tests.package/ICDeployment.class/class/releaseName.st new file mode 100644 index 00000000..7d4486aa --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/class/releaseName.st @@ -0,0 +1,4 @@ +release building +releaseName + + ^ 'IMAPClient-Release' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICDeployment.class/instance/setUp.st new file mode 100644 index 00000000..31763cfa --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/instance/setUp.st @@ -0,0 +1,4 @@ +running +setUp + +self timeout: 60 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/instance/testDeployment.st b/packages/IMAPClient-Tests.package/ICDeployment.class/instance/testDeployment.st new file mode 100644 index 00000000..d04ad68c --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/instance/testDeployment.st @@ -0,0 +1,11 @@ +deployment +testDeployment + +| zip | + +zip := ZipArchive new. + +self class packagesToDeploy do: [:package | self class createMCZfor: package in: zip]. +zip addString: self class preambleString as: 'install/preamble'. + +zip writeToFileNamed: (self class releaseName, '.sar'). \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICDeployment.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICDeployment.class/methodProperties.json new file mode 100644 index 00000000..5e2a8af8 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/methodProperties.json @@ -0,0 +1,9 @@ +{ + "class" : { + "createMCZfor:in:" : "tg 7/26/2019 10:35", + "packagesToDeploy" : "tg 7/25/2019 21:24", + "preambleString" : "mt 7/26/2019 14:42", + "releaseName" : "tg 7/26/2019 10:31" }, + "instance" : { + "setUp" : "mt 7/26/2019 14:48", + "testDeployment" : "tg 7/26/2019 10:07" } } diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/properties.json b/packages/IMAPClient-Tests.package/ICDeployment.class/properties.json similarity index 72% rename from packages/IMAPClient-Tests.package/ICHelperTest.class/properties.json rename to packages/IMAPClient-Tests.package/ICDeployment.class/properties.json index 2c783276..20b611f0 100644 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICDeployment.class/properties.json @@ -4,10 +4,10 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/26/2019 10:33", "instvars" : [ ], - "name" : "ICHelperTest", + "name" : "ICDeployment", "pools" : [ ], "super" : "TestCase", diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/README.md b/packages/IMAPClient-Tests.package/ICEmailTest.class/README.md index e69de29b..681cc956 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/README.md @@ -0,0 +1 @@ +This conducts testing of basic formatting, header and body accessing methods of the ICEmail class. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/emailDate.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/emailDate.st new file mode 100644 index 00000000..78fd1b4a --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/emailDate.st @@ -0,0 +1,4 @@ +constants +emailDate + + ^ DateAndTime year: 2016 month: 6 day: 10 hour: 10 minute: 51 second: 42 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expected1980Seconds.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expected1980Seconds.st new file mode 100644 index 00000000..61e4d768 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expected1980Seconds.st @@ -0,0 +1,4 @@ +constants +expected1980Seconds + + ^ self emailDate asSeconds - (DateAndTime year: 1980 day: 1) asSeconds \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedDate.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedMESZDate.st similarity index 57% rename from packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedDate.st rename to packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedMESZDate.st index c31f494a..ac3794e7 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedDate.st +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedMESZDate.st @@ -1,4 +1,4 @@ constants -expectedParsedDate +expectedParsedMESZDate ^ '10.06.2016 12:51' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedUTCDate.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedUTCDate.st new file mode 100644 index 00000000..65fefbac --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedParsedUTCDate.st @@ -0,0 +1,4 @@ +constants +expectedParsedUTCDate + + ^ '10.06.2016 10:51' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedSqueakEpochSeconds.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedSqueakEpochSeconds.st new file mode 100644 index 00000000..b61a1111 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/class/expectedSqueakEpochSeconds.st @@ -0,0 +1,4 @@ +constants +expectedSqueakEpochSeconds + + ^ self emailDate asSeconds \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/email..st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/email..st index db98607c..50d1374c 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/email..st +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/email..st @@ -1,4 +1,4 @@ accessing -email: anObject +email: anICEmail - email := anObject \ No newline at end of file + email := anICEmail \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/setUp.st index 5cacbad6..f8d21ce0 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/setUp.st @@ -1,8 +1,7 @@ -accessing +running setUp - self - email: (ICEmail new + self email: (ICEmail new body: 'body text'; subject: 'subject text'; from: 'sender'; diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateFormatted.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateFormatted.st new file mode 100644 index 00000000..5f549013 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateFormatted.st @@ -0,0 +1,16 @@ +accessing +testDateFormatted + + | previousOffset | + + previousOffset := DateAndTime localOffset. + + "use UTC (Coordinated Universal Time)" + DateAndTime localOffset: (Duration fromString: '0:00:00:00'). + self assert: self email dateFormatted equals: self class expectedParsedUTCDate. + + "use Mitteleuropäische Sommerzeit" + DateAndTime localOffset: (Duration fromString: '0:02:00:00'). + self assert: self email dateFormatted equals: self class expectedParsedMESZDate. + + DateAndTime localOffset: previousOffset \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSince1980.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSince1980.st new file mode 100644 index 00000000..5046c5d2 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSince1980.st @@ -0,0 +1,4 @@ +accessing +testDateInSecondsSince1980 + + self assert: self email dateInSecondsSince1980 equals: self class expected1980Seconds. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSinceSqueakEpoch.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSinceSqueakEpoch.st new file mode 100644 index 00000000..d8585850 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testDateInSecondsSinceSqueakEpoch.st @@ -0,0 +1,4 @@ +accessing +testDateInSecondsSinceSqueakEpoch + + self assert: self email dateInSecondsSinceSqueakEpoch equals: self class expectedSqueakEpochSeconds. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testGetDateFormatted.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testGetDateFormatted.st deleted file mode 100644 index 6b87e669..00000000 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testGetDateFormatted.st +++ /dev/null @@ -1,13 +0,0 @@ -accessing -testGetDateFormatted - - | previousOffset | - - previousOffset := DateAndTime localOffset. - - "use 'Mitteleuropäische Sommerzeit' " - DateAndTime localOffset: (Duration fromString: '0:02:00:00'). - - self assert: self email getDateFormatted equals: self class expectedParsedDate. - - DateAndTime localOffset: previousOffset \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testRetrieveBody.st b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testRetrieveBody.st index f9841a77..8fd37951 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testRetrieveBody.st +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/instance/testRetrieveBody.st @@ -4,13 +4,11 @@ testRetrieveBody | folder endpoint | endpoint := ICMockEndpoint new. - - "ICEmails are retrieving their body from the endpoint." endpoint mailBody: self email body. folder := ICFolder new. folder endpoint: endpoint; - name: 'dummy'; + folderName: 'dummy'; parent: nil. self email folder: folder. diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICEmailTest.class/methodProperties.json index 164320b3..a2fd7c00 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/methodProperties.json @@ -1,14 +1,20 @@ { "class" : { + "emailDate" : "tg 7/19/2019 12:40", + "expected1980Seconds" : "tg 7/19/2019 09:33", "expectedBody" : "DH 6/9/2018 15:33", "expectedMinimalHeaderAsString" : "DH 6/9/2018 15:32", - "expectedParsedDate" : "DH 6/6/2018 19:52", + "expectedParsedMESZDate" : "tg 7/19/2019 10:36", + "expectedParsedUTCDate" : "tg 7/19/2019 10:36", + "expectedSqueakEpochSeconds" : "tg 7/19/2019 09:29", "expectedStringRepresentation" : "DH 6/9/2018 15:23" }, "instance" : { "email" : "C.G. 7/25/2018 17:52", - "email:" : "C.G. 7/25/2018 17:52", - "setUp" : "C.G. 7/25/2018 17:53", + "email:" : "pm 6/9/2019 17:16", + "setUp" : "mt 7/26/2019 14:28", "testAsString" : "mw 5/11/2018 12:06", - "testGetDateFormatted" : "C.G. 7/25/2018 17:53", + "testDateFormatted" : "tg 7/19/2019 08:36", + "testDateInSecondsSince1980" : "tg 7/19/2019 09:26", + "testDateInSecondsSinceSqueakEpoch" : "tg 7/19/2019 09:27", "testMinimalHeaderAsString" : "C.G. 7/25/2018 17:53", - "testRetrieveBody" : "DH 7/9/2018 15:39" } } + "testRetrieveBody" : "mt 7/26/2019 14:41" } } diff --git a/packages/IMAPClient-Tests.package/ICEmailTest.class/properties.json b/packages/IMAPClient-Tests.package/ICEmailTest.class/properties.json index a84b02fa..2a9272d1 100644 --- a/packages/IMAPClient-Tests.package/ICEmailTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICEmailTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/9/2019 14:42", "instvars" : [ "email" ], "name" : "ICEmailTest", diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/README.md b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/README.md index e69de29b..9578197a 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/README.md @@ -0,0 +1 @@ +This tests the ICEndPoint-Authentification part by performing a successfull and a failing mock login \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidPasswordAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidPasswordAccountInfo.st new file mode 100644 index 00000000..72a3656f --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidPasswordAccountInfo.st @@ -0,0 +1,10 @@ +constants +invalidPasswordAccountInfo + + ^ ICAccountInfo new + accountName: self validAccountName; + host: self validHost; + port: self validPort; + username: self validUsername; + password: self invalidPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidUsernameAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidUsernameAccountInfo.st new file mode 100644 index 00000000..0982b780 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/invalidUsernameAccountInfo.st @@ -0,0 +1,10 @@ +constants +invalidUsernameAccountInfo + + ^ ICAccountInfo new + accountName: self validAccountName; + host: self validHost; + port: self validPort; + username: self invalidUsername; + password: self validPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountInfo.st new file mode 100644 index 00000000..d97e6e76 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountInfo.st @@ -0,0 +1,10 @@ +constants +validAccountInfo + + ^ ICAccountInfo new + accountName: self validAccountName; + host: self validHost; + port: self validPort; + username: self validUsername; + password: self validPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountName.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountName.st new file mode 100644 index 00000000..b30d39ad --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validAccountName.st @@ -0,0 +1,4 @@ +constants +validAccountName + + ^ 'validAccountName' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validHost.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validHost.st new file mode 100644 index 00000000..fc8e0577 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validHost.st @@ -0,0 +1,4 @@ +constants +validHost + + ^ 'valid.host' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPassword.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPassword.st index 1461b406..b187fa25 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPassword.st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPassword.st @@ -1,4 +1,4 @@ constants validPassword - ^ '"123456"' \ No newline at end of file + ^ '123456' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPort.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPort.st new file mode 100644 index 00000000..27c2b5fc --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validPort.st @@ -0,0 +1,4 @@ +constants +validPort + + ^ 993 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validUsername.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validUsername.st index 84a5afb9..20f446e2 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validUsername.st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/class/validUsername.st @@ -1,4 +1,4 @@ constants validUsername - ^ '"user"' \ No newline at end of file + ^ 'user' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/endPoint..st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/endPoint..st index 5a97cc5e..9d4906a6 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/endPoint..st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/endPoint..st @@ -1,4 +1,4 @@ accessing -endPoint: anObject +endPoint: anICEndPoint - endPoint := anObject \ No newline at end of file + endPoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/setUp.st index 0b2ef19b..8aba068f 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/setUp.st @@ -1,11 +1,11 @@ -setup +running setUp self endPoint: ICEndPoint new. self endPoint stream: ICMockSocketStream new. self endPoint stream connected: true. - self - endPoint stream server + + self endPoint stream server validUsername: self class validUsername; validPassword: self class validPassword; responses: self endPoint stream server notAuthenticatedResponses \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/tearDown.st index b3dbdaa0..6b57022e 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/tearDown.st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/tearDown.st @@ -1,4 +1,4 @@ -setup +running tearDown self endPoint close \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLogin.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLogin.st index 78ca270d..b9636c60 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLogin.st +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLogin.st @@ -1,4 +1,5 @@ login testLogin - - self assert: (self endPoint login: self class validUsername using: self class validPassword) \ No newline at end of file + + self endPoint accountInfo: self class validAccountInfo. + self assert: (self endPoint login) \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidPassword.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidPassword.st new file mode 100644 index 00000000..af09d69b --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidPassword.st @@ -0,0 +1,5 @@ +login +testLoginWithInvalidPassword + + [self endPoint accountInfo: self class invalidPasswordAccountInfo. + self deny: self endPoint login] valueSuppressingAllMessages \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidUsername.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidUsername.st new file mode 100644 index 00000000..6b557dde --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithInvalidUsername.st @@ -0,0 +1,5 @@ +login +testLoginWithInvalidUsername + + [self endPoint accountInfo: self class invalidUsernameAccountInfo. + self deny: self endPoint login] valueSuppressingAllMessages \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongPassword.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongPassword.st deleted file mode 100644 index 4a880f92..00000000 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongPassword.st +++ /dev/null @@ -1,7 +0,0 @@ -login -testLoginWithWrongPassword - - [self endPoint authenticationInfo - username: self class validUsername; - password: self class invalidPassword. - self deny: self endPoint login] valueSuppressingAllMessages \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongUsername.st b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongUsername.st deleted file mode 100644 index 140af1ea..00000000 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/instance/testLoginWithWrongUsername.st +++ /dev/null @@ -1,7 +0,0 @@ -login -testLoginWithWrongUsername - - [self endPoint authenticationInfo - username: self class invalidUsername; - password: self class validPassword. - self deny: self endPoint login] valueSuppressingAllMessages \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/methodProperties.json index 87488776..3bf2cd24 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/methodProperties.json @@ -1,14 +1,20 @@ { "class" : { "invalidPassword" : "jwe 6/15/2016 16:03", + "invalidPasswordAccountInfo" : "mt 7/26/2019 14:22", "invalidUsername" : "jwe 6/15/2016 16:03", - "validPassword" : "jwe 6/15/2016 16:03", - "validUsername" : "jwe 6/15/2016 16:03" }, + "invalidUsernameAccountInfo" : "mt 7/26/2019 14:23", + "validAccountInfo" : "mt 7/26/2019 14:23", + "validAccountName" : "tg 7/10/2019 19:43", + "validHost" : "tg 7/10/2019 19:43", + "validPassword" : "tg 4/30/2019 12:22", + "validPort" : "tg 7/10/2019 19:43", + "validUsername" : "tg 4/30/2019 12:22" }, "instance" : { "endPoint" : "AR 5/31/2016 21:33", - "endPoint:" : "AR 5/31/2016 21:33", - "setUp" : "C.G. 7/25/2018 17:53", + "endPoint:" : "pm 6/9/2019 17:16", + "setUp" : "tg 7/10/2019 19:16", "tearDown" : "js 6/7/2016 09:40", - "testLogin" : "jwe 7/12/2016 10:18", - "testLoginWithWrongPassword" : "C.G. 7/25/2018 12:54", - "testLoginWithWrongUsername" : "C.G. 7/25/2018 12:55" } } + "testLogin" : "tg 7/10/2019 18:58", + "testLoginWithInvalidPassword" : "tg 7/10/2019 18:59", + "testLoginWithInvalidUsername" : "tg 7/10/2019 18:54" } } diff --git a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/properties.json b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/properties.json index 2d754c35..bcd63ef5 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointAuthentificationTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:42", "instvars" : [ "endPoint" ], "name" : "ICEndPointAuthentificationTest", diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/README.md b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/README.md index e69de29b..05d85f88 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/README.md @@ -0,0 +1 @@ +This tests the ICEndPoint-Command part by performing various protocol calls. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/endPoint..st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/endPoint..st index 5a97cc5e..9d4906a6 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/endPoint..st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/endPoint..st @@ -1,4 +1,4 @@ accessing -endPoint: anObject +endPoint: anICEndPoint - endPoint := anObject \ No newline at end of file + endPoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/rootFolder..st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/rootFolder..st index 39b879e0..b5caae36 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/rootFolder..st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/rootFolder..st @@ -1,4 +1,4 @@ accessing -rootFolder: anObject +rootFolder: anICFolder - rootFolder := anObject \ No newline at end of file + rootFolder := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/setUp.st index a3d5ceab..a4ad1bdd 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/setUp.st @@ -1,4 +1,4 @@ -setup +running setUp | subfolder | @@ -19,8 +19,7 @@ setUp hierarchyDelimiter: '\'. self endPoint stream connected: true. - "self endPoint stream server responses: self endPoint stream server selectedResponses." - "Transcript show: (String cr, 'last response:', String cr, (self endPoint stream server selectedResponses at: - '. FETCH 45 (body[HEADER.FIELDS (from to subject date)])') , String cr, String cr)." - self endPoint lastResponse: (self endPoint stream server selectedResponses at: '. FETCH 45 (body[HEADER.FIELDS (from to subject date)])') \ No newline at end of file + self endPoint lastResponse: (self endPoint + stream server selectedResponses + at: '. FETCH 45 (body[HEADER.FIELDS (from to subject date)])') \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/tearDown.st new file mode 100644 index 00000000..a836cb36 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/tearDown.st @@ -0,0 +1,14 @@ +running +tearDown + + | mailAPath mailBPath path folderName | + + folderName := self endPoint rootFolderName. + + path := 'Maildir', FileDirectory slash, folderName, FileDirectory slash, 'inbox'. + mailAPath := FileDirectory default fullPathFor: path , FileDirectory slash, '3' . + mailBPath := FileDirectory default fullPathFor: path , FileDirectory slash, '4' . + + FileDirectory default + deleteFileNamed: mailAPath; + deleteFileNamed: mailBPath \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithFoundMails.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithFoundMails.st index 0c731f64..d12de6e9 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithFoundMails.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithFoundMails.st @@ -1,13 +1,10 @@ fetch testFetchMailsBeginningAtWithFoundMails - "the uids of the mock server are 3 4 42 43 44 45 46 - so fetchMailsBeginningAt:42 with 2 should return mails 3+4" - | path emailObjects mailAPath mailBPath folderName | emailObjects := self endPoint fetchMailsBeginningAt: 42 number: 2. - folderName := ICHelper getHashNameForAccount: (self endPoint serverInfo host) and: (self endPoint authenticationInfo username). + folderName := self endPoint rootFolderName. path := 'Maildir', FileDirectory slash, folderName, FileDirectory slash, 'inbox'. mailAPath := FileDirectory default fullPathFor: path , FileDirectory slash, '3' . mailBPath := FileDirectory default fullPathFor: path , FileDirectory slash, '4' . @@ -19,7 +16,6 @@ testFetchMailsBeginningAtWithFoundMails assert: (FileDirectory default fileExists: (mailAPath)); assert: (FileDirectory default fileExists: (mailBPath)). - "Delete generated files" FileDirectory default deleteFileNamed: mailAPath; deleteFileNamed: mailBPath. diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithoutFoundMails.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithoutFoundMails.st index c493e4bc..c1606094 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithoutFoundMails.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFetchMailsBeginningAtWithoutFoundMails.st @@ -1,10 +1,4 @@ fetch testFetchMailsBeginningAtWithoutFoundMails - "the uids of the mock server are 3 4 42 43 44 45 46 - so fetchMailsBeginningAt:3 with 5 should return no mails" - - | result | - - result := self endPoint fetchMailsBeginningAt: 3 number: 5. - self assert: result isEmpty \ No newline at end of file + self assert: (self endPoint fetchMailsBeginningAt: 3 number: 5) isEmpty \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBody.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBody.st index 93e03f09..672e1840 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBody.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBody.st @@ -5,7 +5,7 @@ testFillMessageBody email := ICEmail new. email messageID: 42. - email uid: 42. + email uniqueID: 42. self endPoint fillBodyFor: email. self assert: (email body) equals: self class expectedFetchBody \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBodyWithMultilineBody.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBodyWithMultilineBody.st index d1ba71c1..1098d85d 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBodyWithMultilineBody.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testFillMessageBodyWithMultilineBody.st @@ -5,6 +5,6 @@ testFillMessageBodyWithMultilineBody email := ICEmail new. email messageID: 43. - email uid: 43. + email uniqueID: 43. self endPoint fillBodyFor: email. self assert: (email body) equals: self class expectedFetchMultilineBody \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testRetrieveFlagsOnly.st b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testRetrieveFlagsOnly.st index a509a1d3..9e042ecc 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testRetrieveFlagsOnly.st +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/instance/testRetrieveFlagsOnly.st @@ -6,15 +6,15 @@ testRetrieveFlagsOnly "Load emails from server and store them locally" "To test the functionality I need ICEMails, which are already present in storage, - so I can check whether the flags are updated" + so I can check whether the flags are updated" emailObjects := self endPoint maildirDiffFetchHeadersFrom: '3' to: '4'. mailA := emailObjects first. mailB := emailObjects second. folder := emailObjects first folder. - folder emails addAll: emailObjects. + folder addMails: emailObjects. - folderName := ICHelper getHashNameForAccount: (self endPoint serverInfo host) and: (self endPoint authenticationInfo username). + folderName := self endPoint rootFolderName. path := 'Maildir', FileDirectory slash, folderName, FileDirectory slash, 'inbox'. mailAPath := FileDirectory default fullPathFor: path , FileDirectory slash, '3' . mailBPath := FileDirectory default fullPathFor: path , FileDirectory slash, '4' . diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/methodProperties.json index 64804330..537c315c 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/methodProperties.json @@ -19,21 +19,22 @@ "serverPort" : "jwe 6/21/2016 10:11" }, "instance" : { "endPoint" : "js 6/14/2016 10:46", - "endPoint:" : "js 6/14/2016 10:46", + "endPoint:" : "pm 6/9/2019 17:17", "messageID" : "AR 6/13/2016 18:45", "messageIDWithDifferentOrder" : "al 6/28/2016 10:25", "multilineBodyMessageID" : "AR 6/15/2016 12:01", "multilineReceiverMessageID" : "al 6/28/2016 10:46", "multilineSenderMessageID" : "al 6/28/2016 10:38", "rootFolder" : "C.G. 7/25/2018 17:54", - "rootFolder:" : "C.G. 7/25/2018 17:54", - "setUp" : "C.G. 7/25/2018 17:54", - "testFetchMailsBeginningAtWithFoundMails" : "C.G. 7/25/2018 17:55", - "testFetchMailsBeginningAtWithoutFoundMails" : "C.G. 7/25/2018 17:55", - "testFillMessageBody" : "C.G. 7/25/2018 17:55", - "testFillMessageBodyWithMultilineBody" : "C.G. 7/25/2018 17:56", + "rootFolder:" : "pm 6/9/2019 17:17", + "setUp" : "tg 7/26/2019 20:58", + "tearDown" : "ok 7/25/2019 18:39", + "testFetchMailsBeginningAtWithFoundMails" : "mt 7/26/2019 14:46", + "testFetchMailsBeginningAtWithoutFoundMails" : "mt 7/26/2019 14:46", + "testFillMessageBody" : "pm 6/2/2019 15:58", + "testFillMessageBodyWithMultilineBody" : "pm 6/2/2019 15:58", "testListAllFolders" : "DH 4/27/2018 02:35", "testLogout" : "jwe 6/21/2016 10:15", "testPing" : "jwe 6/21/2016 10:15", - "testRetrieveFlagsOnly" : "C.G. 7/25/2018 17:59", + "testRetrieveFlagsOnly" : "tg 7/26/2019 22:01", "testSelectInbox" : "C.G. 7/25/2018 18:00" } } diff --git a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/properties.json b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/properties.json index 14ccee51..b3b2c2ac 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointCommandTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:43", "instvars" : [ "endPoint", "rootFolder" ], diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/README.md b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/README.md new file mode 100644 index 00000000..5510dd06 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/README.md @@ -0,0 +1 @@ +This tests the ICEndPoint-ConnectionConfigurations part (aka the storage) by modifying the data and assuring it cant be modifyed otherwise. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultConfigurationDictionary.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultConfigurationDictionary.st new file mode 100644 index 00000000..5b2093ee --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultConfigurationDictionary.st @@ -0,0 +1,10 @@ +constants +defaultConfigurationDictionary + + ^ Dictionary newFrom: { + 'accountName' -> 'accountname'. + 'address' -> 'imap.test.de'. + 'port' -> 42. + 'username' -> 'test@test.test'. + 'ssl' -> true. + } \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultInvalidKeysConfigurationDictionary.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultInvalidKeysConfigurationDictionary.st new file mode 100644 index 00000000..be79aed4 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/defaultInvalidKeysConfigurationDictionary.st @@ -0,0 +1,9 @@ +constants +defaultInvalidKeysConfigurationDictionary + + ^ Dictionary newFrom: { + 'address' -> 'imap.test.de'. + 'bort' -> 42. + 'username' -> 'test@test.test'. + 'ssl' -> true. + } \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/invalidDataDictionaryErrorMessage.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/invalidDataDictionaryErrorMessage.st new file mode 100644 index 00000000..ed670b9a --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/class/invalidDataDictionaryErrorMessage.st @@ -0,0 +1,4 @@ +constants +invalidDataDictionaryErrorMessage + + ^ 'Not a valid dataDictionary' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations..st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations..st new file mode 100644 index 00000000..36870382 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations..st @@ -0,0 +1,4 @@ +accessing +previousConnectionConfigurations: aConfigurationsCollection + + previousConnectionConfigurations := aConfigurationsCollection \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations.st new file mode 100644 index 00000000..6ad73590 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/previousConnectionConfigurations.st @@ -0,0 +1,4 @@ +accessing +previousConnectionConfigurations + + ^ previousConnectionConfigurations \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/setUp.st new file mode 100644 index 00000000..e4913d82 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/setUp.st @@ -0,0 +1,7 @@ +running +setUp + + self previousConnectionConfigurations: ICEndPoint connectionConfigurations. + ICEndPoint connectionConfigurations: nil. + + \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/tearDown.st new file mode 100644 index 00000000..6f3c39df --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/tearDown.st @@ -0,0 +1,6 @@ +running +tearDown + + ICEndPoint connectionConfigurations: self previousConnectionConfigurations. + + \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testAddConfiguration.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testAddConfiguration.st new file mode 100644 index 00000000..987b131c --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testAddConfiguration.st @@ -0,0 +1,6 @@ +testing +testAddConfiguration + + ICEndPoint addConfiguration: self class defaultConfigurationDictionary. + self assert: ICEndPoint connectionConfigurations equals: + { self class defaultConfigurationDictionary } asOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testCheckValidConfiguration.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testCheckValidConfiguration.st new file mode 100644 index 00000000..c274817b --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testCheckValidConfiguration.st @@ -0,0 +1,7 @@ +testing +testCheckValidConfiguration + + self assert: (ICEndPoint checkValidConfiguration: Dictionary new) not. + self assert: (ICEndPoint checkValidConfiguration: self class defaultInvalidKeysConfigurationDictionary) not. + + self assert: (ICEndPoint checkValidConfiguration: self class defaultConfigurationDictionary) \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testClearConfigurations.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testClearConfigurations.st new file mode 100644 index 00000000..f2bf518c --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testClearConfigurations.st @@ -0,0 +1,6 @@ +testing +testClearConfigurations + + ICEndPoint addConfiguration: self class defaultConfigurationDictionary. + ICEndPoint clearConfigurations. + self assert: ICEndPoint connectionConfigurations equals: OrderedCollection new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testLazyInit.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testLazyInit.st new file mode 100644 index 00000000..5f831808 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testLazyInit.st @@ -0,0 +1,4 @@ +testing +testLazyInit + + self assert: ICEndPoint connectionConfigurations equals: OrderedCollection new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testReferenceDeleteSecurity.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testReferenceDeleteSecurity.st new file mode 100644 index 00000000..ef399e58 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testReferenceDeleteSecurity.st @@ -0,0 +1,10 @@ +testing +testReferenceDeleteSecurity + + |reference| + ICEndPoint addConfiguration: self class defaultConfigurationDictionary. + reference := ICEndPoint connectionConfigurations. + reference remove: self class defaultConfigurationDictionary. + + self assert: ICEndPoint connectionConfigurations equals: + {self class defaultConfigurationDictionary} asOrderedCollection. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRejectInvaildConfiguration.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRejectInvaildConfiguration.st new file mode 100644 index 00000000..e5abe11e --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRejectInvaildConfiguration.st @@ -0,0 +1,11 @@ +testing +testRejectInvaildConfiguration + + self should: [ICEndPoint addConfiguration: Dictionary new] + raise: Error + description: self class invalidDataDictionaryErrorMessage. + self should: [ICEndPoint addConfiguration: + self class defaultInvalidKeysConfigurationDictionary ] + raise: Error + description: self class invalidDataDictionaryErrorMessage + \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRemoveConfiguration.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRemoveConfiguration.st new file mode 100644 index 00000000..2860527e --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/instance/testRemoveConfiguration.st @@ -0,0 +1,6 @@ +testing +testRemoveConfiguration + + ICEndPoint addConfiguration: self class defaultConfigurationDictionary. + ICEndPoint removeConfiguration: self class defaultConfigurationDictionary. + self assert: ICEndPoint connectionConfigurations equals: OrderedCollection new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/methodProperties.json new file mode 100644 index 00000000..450b0f24 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/methodProperties.json @@ -0,0 +1,17 @@ +{ + "class" : { + "defaultConfigurationDictionary" : "tg 7/19/2019 10:02", + "defaultInvalidKeysConfigurationDictionary" : "tg 7/19/2019 10:02", + "invalidDataDictionaryErrorMessage" : "pm 6/19/2019 14:26" }, + "instance" : { + "previousConnectionConfigurations" : "pm 6/11/2019 19:44", + "previousConnectionConfigurations:" : "pm 6/11/2019 19:45", + "setUp" : "pm 6/19/2019 13:19", + "tearDown" : "pm 6/19/2019 13:19", + "testAddConfiguration" : "pm 6/19/2019 14:46", + "testCheckValidConfiguration" : "pm 6/19/2019 15:03", + "testClearConfigurations" : "pm 6/19/2019 14:47", + "testLazyInit" : "pm 6/19/2019 14:47", + "testReferenceDeleteSecurity" : "tg 7/26/2019 20:59", + "testRejectInvaildConfiguration" : "tg 7/26/2019 21:00", + "testRemoveConfiguration" : "pm 6/19/2019 14:47" } } diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/properties.json b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/properties.json new file mode 100644 index 00000000..73ff6e0f --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionConfigurationsTest.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "IMAPClient-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "tg 7/8/2019 15:43", + "instvars" : [ + "previousConnectionConfigurations" ], + "name" : "ICEndPointConnectionConfigurationsTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/README.md b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/README.md index e69de29b..0b10f7a5 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/README.md @@ -0,0 +1 @@ +This tests the ICEndPoint-Connection part by creating a successfull connection and a failing one. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHost.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHost.st index afbf8181..01b1beed 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHost.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHost.st @@ -1,4 +1,4 @@ constants invalidHost - ^ 'example.de' \ No newline at end of file + ^ 'example' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHostAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHostAccountInfo.st new file mode 100644 index 00000000..9454b403 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidHostAccountInfo.st @@ -0,0 +1,10 @@ +constants +invalidHostAccountInfo + +^ ICAccountInfo new + accountName: self validAccountName; + host: self invalidHost; + port: self validPort; + username: self validUsername; + password: self validPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidPortAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidPortAccountInfo.st new file mode 100644 index 00000000..8005517f --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/invalidPortAccountInfo.st @@ -0,0 +1,10 @@ +constants +invalidPortAccountInfo + + ^ ICAccountInfo new + accountName: self validAccountName; + host: self validHost; + port: self invalidPort; + username: self validUsername; + password: self validPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountInfo.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountInfo.st new file mode 100644 index 00000000..d97e6e76 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountInfo.st @@ -0,0 +1,10 @@ +constants +validAccountInfo + + ^ ICAccountInfo new + accountName: self validAccountName; + host: self validHost; + port: self validPort; + username: self validUsername; + password: self validPassword; + ssl: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountName.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountName.st new file mode 100644 index 00000000..b30d39ad --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validAccountName.st @@ -0,0 +1,4 @@ +constants +validAccountName + + ^ 'validAccountName' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validPassword.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validPassword.st new file mode 100644 index 00000000..35a09155 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validPassword.st @@ -0,0 +1,4 @@ +constants +validPassword + + ^ 'validPassword' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validUsername.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validUsername.st new file mode 100644 index 00000000..a9add4d3 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/class/validUsername.st @@ -0,0 +1,4 @@ +constants +validUsername + + ^ 'validUserName' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/endPoint..st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/endPoint..st index 5a97cc5e..9d4906a6 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/endPoint..st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/endPoint..st @@ -1,4 +1,4 @@ accessing -endPoint: anObject +endPoint: anICEndPoint - endPoint := anObject \ No newline at end of file + endPoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/setUp.st index 61ee330a..4ee8418f 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/setUp.st @@ -1,4 +1,4 @@ -setup +running setUp self endPoint: ICEndPoint new. diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/tearDown.st index b3dbdaa0..6b57022e 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/tearDown.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/tearDown.st @@ -1,4 +1,4 @@ -setup +running tearDown self endPoint close \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOn.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOn.st index 2f49b9f3..53791717 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOn.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOn.st @@ -1,6 +1,6 @@ connectOn testConnectToOn - self - shouldnt: [endPoint connectTo: self class validHost on: self class validPort with: ICMockSocketStream] + self endPoint accountInfo: self class validAccountInfo. + self shouldnt: [self endPoint connectWith: ICMockSocketStream] raise: Exception \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongHost.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongHost.st index 4d03310a..f5cd0ab5 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongHost.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongHost.st @@ -1,5 +1,6 @@ connectOn testConnectToOnWithWrongHost - self endPoint connectTo: self class invalidHost on: self class invalidPort with: ICMockSocketStream. + self endPoint accountInfo: self class invalidHostAccountInfo. + self endPoint connectWith: ICMockSocketStream. self assert: self endPoint fatalErrorOccured equals: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongPort.st b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongPort.st index 583c251c..c971b49e 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongPort.st +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/instance/testConnectToOnWithWrongPort.st @@ -1,5 +1,6 @@ connectOn testConnectToOnWithWrongPort - self endPoint connectTo: self class validHost on: self class invalidPort with: ICMockSocketStream. + self endPoint accountInfo: self class invalidPortAccountInfo. + self endPoint connectWith: ICMockSocketStream. self assert: self endPoint fatalErrorOccured equals: true \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/methodProperties.json index 958120ff..a24d5caa 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/methodProperties.json @@ -1,17 +1,23 @@ { "class" : { "defaultMockServerConfig" : "C.G. 7/25/2018 18:22", - "invalidHost" : "AR 5/31/2016 22:00", + "invalidHost" : "tg 7/10/2019 19:36", + "invalidHostAccountInfo" : "mt 7/26/2019 14:24", "invalidPort" : "AR 5/31/2016 22:00", + "invalidPortAccountInfo" : "mt 7/26/2019 14:23", + "validAccountInfo" : "mt 7/26/2019 14:23", + "validAccountName" : "tg 7/10/2019 19:26", "validHost" : "jwe 7/28/2016 14:29", "validHostIP" : "AR 7/12/2016 10:24", - "validPort" : "AR 5/31/2016 21:37" }, + "validPassword" : "tg 7/10/2019 19:27", + "validPort" : "AR 5/31/2016 21:37", + "validUsername" : "tg 7/10/2019 19:26" }, "instance" : { "endPoint" : "AR 5/31/2016 21:33", - "endPoint:" : "AR 5/31/2016 21:33", + "endPoint:" : "pm 6/9/2019 17:17", "setUp" : "AR 7/14/2016 09:17", "tearDown" : "js 6/7/2016 09:42", - "testConnectToOn" : "C.G. 7/25/2018 18:01", - "testConnectToOnWithWrongHost" : "C.G. 7/25/2018 18:01", - "testConnectToOnWithWrongPort" : "C.G. 7/25/2018 12:53", + "testConnectToOn" : "tg 7/26/2019 21:41", + "testConnectToOnWithWrongHost" : "tg 7/10/2019 20:00", + "testConnectToOnWithWrongPort" : "tg 7/10/2019 20:00", "testPingIfNotConnected" : "C.G. 7/25/2018 18:02" } } diff --git a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/properties.json b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/properties.json index a9fd3c6f..12d6f7fd 100644 --- a/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICEndPointConnectionTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:44", "instvars" : [ "endPoint" ], "name" : "ICEndPointConnectionTest", diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/README.md b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstUID.st b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstUID.st deleted file mode 100644 index c7827f4f..00000000 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstUID.st +++ /dev/null @@ -1,4 +0,0 @@ -as yet unclassified -firstUID - - ^ '20' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint..st b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint..st deleted file mode 100644 index b41cab06..00000000 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -endpoint: anObject - - endpoint := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser..st b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser..st deleted file mode 100644 index 53616b8a..00000000 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -parser: anObject - - parser := anObject \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser.st b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser.st deleted file mode 100644 index 6e5e526a..00000000 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/parser.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -parser - - ^ parser \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/setUp.st deleted file mode 100644 index ecfd1a28..00000000 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/setUp.st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -setUp - - self parser: ICFetchResponseParser new. - self endpoint: ICEndPoint new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/README.md b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/README.md index e69de29b..b4be42b2 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/README.md @@ -0,0 +1 @@ +This tests the class ICFileReadWriter by creating and reading JSON FIles. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/readWriter..st b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/readWriter..st index 2d812299..24bdb677 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/readWriter..st +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/readWriter..st @@ -1,4 +1,4 @@ accessing -readWriter: anObject +readWriter: anICFileReadWriter - readWriter := anObject \ No newline at end of file + readWriter := anICFileReadWriter \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/setUp.st index d6345276..7409be69 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/setUp.st @@ -1,4 +1,4 @@ -accessing +running setUp self readWriter: ICFileReadWriter new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testGetRecipients.st b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testRecipients.st similarity index 67% rename from packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testGetRecipients.st rename to packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testRecipients.st index 6b107732..dd9c22b9 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testGetRecipients.st +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/instance/testRecipients.st @@ -1,9 +1,9 @@ accessing -testGetRecipients +testRecipients | jsonRecipients | jsonRecipients := (self class givenJsonObject at: 'header') at: 'to'. self - assert: (self readWriter getRecipientsFrom: jsonRecipients) + assert: (self readWriter recipientsFrom: jsonRecipients) equals: (self class expectedMailObject header at: #to) \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/methodProperties.json index 7eb7c46a..209ebd03 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/methodProperties.json @@ -5,9 +5,9 @@ "givenJsonObject" : "C.G. 7/25/2018 18:21" }, "instance" : { "readWriter" : "dl 7/20/2017 10:54", - "readWriter:" : "dl 7/20/2017 10:54", + "readWriter:" : "pm 6/9/2019 17:18", "setUp" : "C.G. 7/25/2018 18:02", "testCreateHeader" : "C.G. 7/25/2018 18:03", "testCreateJsonHeader" : "C.G. 7/25/2018 18:03", - "testGetRecipients" : "C.G. 7/25/2018 18:03", - "testReadWrite" : "C.G. 7/25/2018 18:03" } } + "testReadWrite" : "C.G. 7/25/2018 18:03", + "testRecipients" : "pm 6/3/2019 18:53" } } diff --git a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/properties.json b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/properties.json index 2adb761b..42128914 100644 --- a/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICFileReadWriterTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:48", "instvars" : [ "readWriter" ], "name" : "ICFileReadWriterTest", diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/README.md b/packages/IMAPClient-Tests.package/ICFolderTest.class/README.md index e69de29b..6cfb583b 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/README.md +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/README.md @@ -0,0 +1 @@ +This tests the ICFolder class by adding, removing and reading from a folder. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/endpoint..st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/endpoint..st index b41cab06..9da1aa2d 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/endpoint..st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/endpoint..st @@ -1,4 +1,4 @@ accessing -endpoint: anObject +endpoint: anICEndPoint - endpoint := anObject \ No newline at end of file + endpoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/exampleEmailIn..st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/exampleEmailIn..st index 5239719f..dbcf1ab3 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/exampleEmailIn..st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/exampleEmailIn..st @@ -1,15 +1,10 @@ setup exampleEmailIn: aFolder - - | email | - - email := ICEmail new. - email + + ^ ICEmail new body: 'i am very body'; subject: 'urgent'; from: 'coolkid@aol.com'; to: 'me@me.com'; folder: aFolder; - date: 'Fri, 10 Jun 2016 12:52:11 +0200'. - - ^ email \ No newline at end of file + date: 'Fri, 10 Jun 2016 12:52:11 +0200' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/root..st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/root..st index dc8cfd2d..d79b7251 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/root..st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/root..st @@ -1,4 +1,4 @@ accessing -root: anObject +root: anICFolder - root := anObject \ No newline at end of file + root := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/setUp.st index 8c312c6b..5cbf7fcd 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/setUp.st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/setUp.st @@ -1,4 +1,4 @@ -setup +running setUp self root: ICFolder new. diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/tearDown.st index 999458f2..7d90a5c7 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/tearDown.st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/tearDown.st @@ -1,4 +1,4 @@ -setup +running tearDown self root: nil \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderNotPresent.st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderNotPresent.st index 3f045f00..51e16c3c 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderNotPresent.st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderNotPresent.st @@ -1,4 +1,4 @@ -childFolderNamed +folderNames testChildFolderNamedWithSubfolderNotPresent | subfolder1 subfolder2 | diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderPresent.st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderPresent.st index 7f93acfb..be19931d 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderPresent.st +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testChildFolderNamedWithSubfolderPresent.st @@ -1,4 +1,4 @@ -childFolderNamed +folderNames testChildFolderNamedWithSubfolderPresent | subfolder1 subfolder2 result | diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testRootFolderHashName.st b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testRootFolderHashName.st new file mode 100644 index 00000000..a9a9c860 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/instance/testRootFolderHashName.st @@ -0,0 +1,21 @@ +folderNames +testRootFolderHashName + + | testEndpoint| + testEndpoint := ICEndPoint new + accountInfo: (ICAccountInfo new). + + testEndpoint accountInfo + host: 'testHost'; + username: 'klaus'. + self assert: testEndpoint rootFolderName equals: '1394373304'. + + testEndpoint accountInfo + host: 'tHost'; + username: 'klaus'. + self assert: testEndpoint rootFolderName equals: '8003456151'. + + testEndpoint accountInfo + host: 'abcd'; + username: 'efgh'. + self assert: testEndpoint rootFolderName equals: '3788214663' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICFolderTest.class/methodProperties.json index d20a35e5..fa083f4e 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/methodProperties.json @@ -3,10 +3,10 @@ }, "instance" : { "endpoint" : "ms 7/28/2016 14:10", - "endpoint:" : "ms 7/28/2016 14:11", - "exampleEmailIn:" : "C.G. 7/25/2018 18:04", + "endpoint:" : "pm 6/9/2019 17:19", + "exampleEmailIn:" : "mt 7/26/2019 15:18", "root" : "js 6/7/2016 12:56", - "root:" : "js 6/7/2016 12:56", + "root:" : "pm 6/9/2019 17:19", "setUp" : "C.G. 7/25/2018 18:04", "tearDown" : "js 6/7/2016 12:56", "testAddFolder" : "DH 7/19/2018 18:18", @@ -15,4 +15,5 @@ "testCountFolders" : "C.G. 7/25/2018 18:04", "testEmailInFolder" : "C.G. 7/25/2018 18:05", "testRemoveFolder" : "C.G. 7/25/2018 18:04", - "testRemoveFolderWithFolderNotExisting" : "C.G. 7/25/2018 18:04" } } + "testRemoveFolderWithFolderNotExisting" : "C.G. 7/25/2018 18:04", + "testRootFolderHashName" : "mt 7/26/2019 14:30" } } diff --git a/packages/IMAPClient-Tests.package/ICFolderTest.class/properties.json b/packages/IMAPClient-Tests.package/ICFolderTest.class/properties.json index 77592608..30360e32 100644 --- a/packages/IMAPClient-Tests.package/ICFolderTest.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICFolderTest.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:49", "instvars" : [ "root", "endpoint" ], diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/README.md b/packages/IMAPClient-Tests.package/ICHelperTest.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/configFiles.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/class/configFiles.st deleted file mode 100644 index 5a4f51c6..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/configFiles.st +++ /dev/null @@ -1,10 +0,0 @@ -as yet unclassified -configFiles - - | configs | - - configs := OrderedCollection new. - configs add: self firstConfig. - configs add: self secondConfig. - - ^ configs \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/firstConfig.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/class/firstConfig.st deleted file mode 100644 index 029b8e8a..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/firstConfig.st +++ /dev/null @@ -1,14 +0,0 @@ -as yet unclassified -firstConfig - - | config | - - config := Dictionary new. - - config at: 'ssl' put: true. - config at: 'name' put: 'maxsAccount'. - config at: 'address' put: 'test.server.de' . - config at: 'port' put: '993'. - config at: 'username' put: 'maxMustermann'. - - ^ config \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/secondConfig.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/class/secondConfig.st deleted file mode 100644 index bf9b671a..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/class/secondConfig.st +++ /dev/null @@ -1,14 +0,0 @@ -as yet unclassified -secondConfig - - | config | - - config := Dictionary new. - - config at: 'ssl' put: true. - config at: 'name' put: 'petersAccount'. - config at: 'address' put: 'test.server.nl' . - config at: 'port' put: '993'. - config at: 'username' put: 'peterMustermann'. - - ^ config \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/createConfigFiles.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/createConfigFiles.st deleted file mode 100644 index 5b6bfa31..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/createConfigFiles.st +++ /dev/null @@ -1,29 +0,0 @@ -as yet unclassified -createConfigFiles - - | directory | - - directory := FileDirectory default. - - (directory directoryExists: 'Maildir') - ifFalse: [directory createDirectory: 'Maildir']. - - directory := directory directoryNamed: 'Maildir'. - - (directory directoryExists: 'config') - ifFalse: [directory createDirectory: 'config']. - - directory := directory directoryNamed: 'config'. - - self class configFiles do: [:config | - FileStream forceNewFileNamed: (directory fullPathFor: (config at: 'name')) do: - [:stream | stream - wantsLineEndConversion: false; - nextPutAll: (config at: 'name') ; cr; - nextPutAll: (config at: 'address'); cr; - nextPutAll: (config at: 'port') asString; cr; - nextPutAll: (config at: 'username'); cr; - nextPutAll: (config at: 'ssl') asString; cr; - close]]. - - ^ directory \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/deleteConfigFiles.and..st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/deleteConfigFiles.and..st deleted file mode 100644 index 2802b38d..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/deleteConfigFiles.and..st +++ /dev/null @@ -1,12 +0,0 @@ -as yet unclassified -deleteConfigFiles: firstFileName and: secondFileName - - | directory | - - directory := self getConfigDirectory. - - (directory fileOrDirectoryExists: (firstFileName)) - ifTrue: [directory deleteFileNamed: (firstFileName)]. - - (directory fileOrDirectoryExists: (secondFileName)) - ifTrue: [directory deleteFileNamed: (secondFileName)] \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/getConfigDirectory.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/getConfigDirectory.st deleted file mode 100644 index f32b9785..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/getConfigDirectory.st +++ /dev/null @@ -1,17 +0,0 @@ -as yet unclassified -getConfigDirectory - - | directory | - - directory := FileDirectory default. - (directory directoryExists: 'Maildir') - ifFalse: [directory createDirectory: 'Maildir']. - - directory := directory directoryNamed: 'Maildir'. - - (directory directoryExists: 'config') - ifFalse: [directory createDirectory: 'config']. - - directory := directory directoryNamed: 'config'. - - ^ directory \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testDeleteAccountFromEndpoint.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testDeleteAccountFromEndpoint.st deleted file mode 100644 index b5fb8a09..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testDeleteAccountFromEndpoint.st +++ /dev/null @@ -1,42 +0,0 @@ -as yet unclassified -testDeleteAccountFromEndpoint - - | endpoint serverInfo authenticationInfo directory configDirectory fileName | - - serverInfo := (ICServerInfo new) host: 'testHost'; port: 993. - authenticationInfo := (ICAuthenticationInfo new) username: 'klaus'; password: 'test'. - - endpoint := ICEndPoint new. - endpoint - serverInfo: serverInfo; - authenticationInfo: authenticationInfo. - - "file name calculated with hash of host + username" - fileName := '1394373304'. - - "create dummy config file" - directory := FileDirectory default. - - (directory directoryExists: 'Maildir') - ifFalse: [directory createDirectory: 'Maildir']. - - directory := directory directoryNamed: 'Maildir'. - - "create maildir mail folder" - (directory directoryExists: fileName) - ifFalse: [directory createDirectory: fileName]. - - "create config file" - (directory directoryExists: 'config') - ifFalse: [directory createDirectory: 'config']. - - configDirectory := directory directoryNamed: 'config'. - configDirectory forceNewFileNamed: fileName. - - self assert: ((directory directoryExists: fileName)) equals: true. - self assert: ((configDirectory fileExists: fileName)) equals: true. - - ICHelper deleteAccountFromEndpoint: endpoint. - - self assert: ((directory directoryExists: fileName)) equals: false. - self assert: ((configDirectory fileExists: fileName)) equals: false \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testGetHashName.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testGetHashName.st deleted file mode 100644 index 43a42fe1..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testGetHashName.st +++ /dev/null @@ -1,6 +0,0 @@ -as yet unclassified -testGetHashName - - self assert: (ICHelper getHashNameForAccount: 'testHost' and: 'klaus') equals: '1394373304'. - self assert: (ICHelper getHashNameForAccount: 'tHost' and: 'klaus') equals: '8003456151'. - self assert: (ICHelper getHashNameForAccount: 'abcd' and: 'efgh') equals: '3788214663' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testLoadCredentialsIntoDictionaries.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testLoadCredentialsIntoDictionaries.st deleted file mode 100644 index a5069912..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testLoadCredentialsIntoDictionaries.st +++ /dev/null @@ -1,16 +0,0 @@ -as yet unclassified -testLoadCredentialsIntoDictionaries - - "this tests checks if the config files can be parsed correctly into dictionaries. - for default folders and config files are named by hash...here we use just the name" - - | loadedDataCollection | - - self createConfigFiles. - loadedDataCollection := ICHelper loadCredentialsIntoDictionaries. - - self assert: ((loadedDataCollection indexOf: (self class firstConfig)) ~= 0) equals: true. - self assert: ((loadedDataCollection indexOf: (self class secondConfig)) ~= 0) equals: true. - - "delete the file, which was created for the test" - self deleteConfigFiles: (self class firstConfig at: 'name') and: (self class secondConfig at: 'name') \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testSaveCredentialsIntoFile.st b/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testSaveCredentialsIntoFile.st deleted file mode 100644 index 524bd44b..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/instance/testSaveCredentialsIntoFile.st +++ /dev/null @@ -1,33 +0,0 @@ -as yet unclassified -testSaveCredentialsIntoFile - - "this tests checks if a data dictionary can be saved correctly into a file" - - |directory result firstFileName secondFileName | - - self class configFiles do: [ :config | ICHelper saveCredentialsIntoFile: (config)]. - - directory := self getConfigDirectory. - - firstFileName := (ICHelper getHashNameForAccount: (self class firstConfig at: 'address') - and: (self class firstConfig at: 'username')). - - secondFileName := (ICHelper getHashNameForAccount: (self class secondConfig at: 'address') - and: (self class secondConfig at: 'username')). - - "the method uses hashing for names" - self - assert: (directory fileExists: (ICHelper getHashNameForAccount: (self class firstConfig at: 'address') - and: (self class firstConfig at: 'username'))). - - self - assert: (directory fileExists: (ICHelper getHashNameForAccount: (self class secondConfig at: 'address') - and: (self class secondConfig at: 'username'))). - - result := ICHelper loadCredentialsIntoDictionaries. - - self assert: ((result indexOf: (self class firstConfig)) ~= 0) equals: true. - self assert: ((result indexOf: (self class secondConfig)) ~= 0) equals: true. - - "delete the file, which was created for the test" - self deleteConfigFiles: firstFileName and: secondFileName. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICHelperTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICHelperTest.class/methodProperties.json deleted file mode 100644 index ae15088c..00000000 --- a/packages/IMAPClient-Tests.package/ICHelperTest.class/methodProperties.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "class" : { - "configFiles" : "C.G. 7/25/2018 18:15", - "firstConfig" : "C.G. 7/25/2018 18:15", - "secondConfig" : "C.G. 7/25/2018 18:16" }, - "instance" : { - "createConfigFiles" : "C.G. 7/25/2018 18:06", - "deleteConfigFiles:and:" : "C.G. 7/25/2018 18:06", - "getConfigDirectory" : "C.G. 7/25/2018 18:07", - "testDeleteAccountFromEndpoint" : "C.G. 7/25/2018 18:08", - "testGetHashName" : "C.G. 7/25/2018 18:09", - "testLoadCredentialsIntoDictionaries" : "C.G. 7/25/2018 18:09", - "testSaveCredentialsIntoFile" : "C.G. 7/25/2018 18:10" } } diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/README.md b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/README.md index e69de29b..d3467192 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/README.md +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/README.md @@ -0,0 +1 @@ +Mock endpoint for offline testing purposes \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/mailBody..st b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/mailBody..st index 148b31d7..924daf3a 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/mailBody..st +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/mailBody..st @@ -1,4 +1,4 @@ accessing -mailBody: anObject +mailBody: aString - mailBody := anObject \ No newline at end of file + mailBody := aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/rootFolder..st b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/rootFolder..st index 39b879e0..b5caae36 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/rootFolder..st +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/rootFolder..st @@ -1,4 +1,4 @@ accessing -rootFolder: anObject +rootFolder: anICFolder - rootFolder := anObject \ No newline at end of file + rootFolder := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/select..st b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/select..st index 49400cdf..b89d80fd 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/select..st +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/instance/select..st @@ -1,6 +1,2 @@ mockMethods -select: aString - - "do nothing" - - ^ '' \ No newline at end of file +select: aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/methodProperties.json index 08a81cde..03c6230a 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/methodProperties.json @@ -5,7 +5,7 @@ "fillBodyFor:" : "DH 7/9/2018 15:37", "hierarchyDelimiter" : "ms 7/28/2016 14:04", "mailBody" : "C.G. 7/25/2018 18:10", - "mailBody:" : "C.G. 7/25/2018 18:10", + "mailBody:" : "pm 6/9/2019 17:19", "rootFolder" : "ms 7/28/2016 14:00", - "rootFolder:" : "ms 7/28/2016 14:01", - "select:" : "C.G. 7/25/2018 18:11" } } + "rootFolder:" : "pm 6/9/2019 17:19", + "select:" : "mt 7/26/2019 14:38" } } diff --git a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/properties.json b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/properties.json index 5209ada2..3216c564 100644 --- a/packages/IMAPClient-Tests.package/ICMockEndpoint.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICMockEndpoint.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/9/2019 14:43", "instvars" : [ "rootFolder", "mailBody" ], diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/README.md b/packages/IMAPClient-Tests.package/ICMockServer.class/README.md index e69de29b..68e8946d 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/README.md +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/README.md @@ -0,0 +1 @@ +Mock server for offline testing purposes \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/commandSucceeded..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/commandSucceeded..st index 0da9b566..f4929f1f 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/commandSucceeded..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/commandSucceeded..st @@ -1,4 +1,4 @@ accessing commandSucceeded: aResponse - ^ aResponse last beginsWith: ICEndPoint commandSucceeded \ No newline at end of file + ^ ICParser commandSucceeded: aResponse last \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/fetchFlagsOnlyResponse.st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/fetchFlagsOnlyResponse.st index e478b977..8cd07ff3 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/fetchFlagsOnlyResponse.st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/fetchFlagsOnlyResponse.st @@ -4,4 +4,4 @@ fetchFlagsOnlyResponse ^ OrderedCollection newFrom: { '* 1 FLAGS( \Flagged) UID 3'. '* 2 FLAGS( \Flagged) UID 4'. - '. OK FETCH completed.' }. \ No newline at end of file + '. OK FETCH completed.' } \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/notAuthenticatedResponses.st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/notAuthenticatedResponses.st index 9e73f2f0..5618722d 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/notAuthenticatedResponses.st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/notAuthenticatedResponses.st @@ -3,5 +3,5 @@ notAuthenticatedResponses ^ Dictionary newFrom: { '. NOOP' -> self noopResponse. - '. LOGIN ', self validUsername, ' ', self validPassword -> self loginResponse. + '. LOGIN "', self validUsername, '" "', self validPassword, '"' -> self loginResponse. '. LOGOUT' -> self logoutResponse} \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/responses..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/responses..st index ac480c57..e33f61fc 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/responses..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/responses..st @@ -1,4 +1,4 @@ accessing -responses: anObject +responses: anOrderedCollection - responses := anObject \ No newline at end of file + responses := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHost..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHost..st index 452c1fb8..8fb2c1a5 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHost..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHost..st @@ -1,4 +1,4 @@ accessing -validHost: anObject +validHost: aString - validHost := anObject \ No newline at end of file + validHost := aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHostIP..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHostIP..st index d530051b..04b1732d 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHostIP..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validHostIP..st @@ -1,4 +1,4 @@ accessing -validHostIP: anObject +validHostIP: anArray - validHostIP := anObject \ No newline at end of file + validHostIP := anArray \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPassword..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPassword..st index d95f1df4..ca1941a2 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPassword..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPassword..st @@ -1,4 +1,4 @@ accessing -validPassword: anObject +validPassword: aString - validPassword := anObject \ No newline at end of file + validPassword := aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPort..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPort..st index 63daf68b..a0e85243 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPort..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validPort..st @@ -1,4 +1,4 @@ accessing -validPort: anObject +validPort: aNumber - validPort := anObject \ No newline at end of file + validPort := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validUsername..st b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validUsername..st index 15d35316..ee4c9b19 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validUsername..st +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/instance/validUsername..st @@ -1,4 +1,4 @@ accessing -validUsername: anObject +validUsername: aString - validUsername := anObject \ No newline at end of file + validUsername := aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICMockServer.class/methodProperties.json index d678b844..747aa4e5 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/methodProperties.json @@ -4,9 +4,9 @@ "instance" : { "authenticatedResponses" : "C.G. 6/28/2018 10:33", "badResponse" : "AR 6/10/2016 15:26", - "commandSucceeded:" : "AR 6/26/2016 12:16", + "commandSucceeded:" : "pm 7/15/2019 20:39", "fetchBodyResponse" : "C.G. 7/25/2018 18:12", - "fetchFlagsOnlyResponse" : "C.G. 7/25/2018 18:12", + "fetchFlagsOnlyResponse" : "mt 7/26/2019 14:42", "fetchHeaderResponse" : "al 6/28/2016 10:18", "fetchHeaderResponseBeginning:" : "C.G. 7/25/2018 18:12", "fetchHeaderResponseDate" : "al 6/28/2016 10:06", @@ -27,21 +27,21 @@ "logoutResponse" : "AR 6/30/2016 07:46", "makeTransition:withResponse:" : "C.G. 7/25/2018 18:13", "noopResponse" : "AR 6/30/2016 07:47", - "notAuthenticatedResponses" : "AR 6/30/2016 07:47", + "notAuthenticatedResponses" : "tg 4/30/2019 19:51", "respondTo:" : "C.G. 7/25/2018 18:13", "responses" : "js 6/14/2016 10:51", - "responses:" : "js 6/14/2016 10:51", + "responses:" : "pm 6/9/2019 17:21", "selectInboxResponse" : "AR 6/26/2016 11:50", "selectedResponses" : "js 8/4/2017 21:47", "stateTransitions" : "DH 6/26/2018 21:25", "uidResponse" : "C.G. 7/25/2018 18:13", "validHost" : "js 6/14/2016 10:51", - "validHost:" : "js 6/14/2016 10:51", + "validHost:" : "pm 6/9/2019 17:21", "validHostIP" : "C.G. 7/25/2018 18:13", - "validHostIP:" : "C.G. 7/25/2018 18:14", + "validHostIP:" : "pm 6/9/2019 17:22", "validPassword" : "js 6/14/2016 10:51", - "validPassword:" : "js 6/14/2016 10:51", + "validPassword:" : "pm 6/9/2019 17:23", "validPort" : "js 6/14/2016 10:51", - "validPort:" : "js 6/14/2016 10:51", + "validPort:" : "pm 6/9/2019 17:23", "validUsername" : "js 6/14/2016 10:51", - "validUsername:" : "js 6/14/2016 10:51" } } + "validUsername:" : "pm 6/9/2019 17:23" } } diff --git a/packages/IMAPClient-Tests.package/ICMockServer.class/properties.json b/packages/IMAPClient-Tests.package/ICMockServer.class/properties.json index eedccb08..8b1b5acb 100644 --- a/packages/IMAPClient-Tests.package/ICMockServer.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICMockServer.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/9/2019 14:43", "instvars" : [ "responses", "validHost", diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/README.md b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/README.md index e69de29b..bac1aa1f 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/README.md +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/README.md @@ -0,0 +1 @@ +This is part of the imap server communication mock up. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/connected..st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/connected..st index d0f08f6a..f55dec70 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/connected..st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/connected..st @@ -1,4 +1,4 @@ accessing -connected: anObject +connected: aBool - connected := anObject \ No newline at end of file + connected := aBool \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/lastResponse..st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/lastResponse..st index 73671fc0..5cb22cad 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/lastResponse..st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/lastResponse..st @@ -1,4 +1,4 @@ accessing -lastResponse: anObject +lastResponse: aString - lastResponse := anObject \ No newline at end of file + lastResponse := aString \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/nextResponse.st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/nextResponse.st index e9266085..3c6a453a 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/nextResponse.st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/nextResponse.st @@ -4,6 +4,5 @@ nextResponse self responseQueue ifEmpty: [ ^ OrderedCollection new]. self lastResponse: self responseQueue removeFirst. - Transcript show: 'RECEIVING: ' , self lastResponse; cr. - + ^ self lastResponse \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/responseQueue..st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/responseQueue..st index e934079e..b1024e9f 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/responseQueue..st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/responseQueue..st @@ -1,4 +1,4 @@ accessing -responseQueue: anObject +responseQueue: anOrderedCollection - responseQueue := anObject \ No newline at end of file + responseQueue := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/server..st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/server..st index d31ad51c..290983d5 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/server..st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/server..st @@ -1,4 +1,4 @@ accessing -server: anObject +server: anICMockServer - server := anObject \ No newline at end of file + server := anICMockServer \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/ssl..st b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/ssl..st index b1be2292..1e08ecbc 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/ssl..st +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/instance/ssl..st @@ -1,4 +1,4 @@ accessing -ssl: anObject +ssl: aBool - ssl := anObject \ No newline at end of file + ssl := aBool \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/methodProperties.json index d2eaebe8..8fc29619 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/methodProperties.json @@ -5,17 +5,17 @@ "close" : "js 6/7/2016 09:49", "connectTo:on:" : "C.G. 7/25/2018 18:14", "connected" : "js 6/7/2016 09:49", - "connected:" : "js 6/7/2016 09:49", + "connected:" : "pm 6/9/2019 17:23", "initialize" : "AR 6/13/2016 15:21", "isConnected" : "js 6/7/2016 09:57", "lastResponse" : "js 6/7/2016 10:26", - "lastResponse:" : "js 6/7/2016 10:22", + "lastResponse:" : "pm 6/9/2019 17:25", "nextLine" : "AR 7/12/2016 10:00", - "nextResponse" : "C.G. 7/25/2018 18:14", + "nextResponse" : "mt 7/26/2019 14:30", "responseQueue" : "AR 5/24/2016 10:18", - "responseQueue:" : "AR 5/24/2016 10:18", + "responseQueue:" : "pm 6/9/2019 17:25", "sendCommand:" : "AR 6/10/2016 15:30", "server" : "C.G. 7/25/2018 18:14", - "server:" : "C.G. 7/25/2018 18:14", + "server:" : "pm 6/9/2019 17:26", "ssl" : "ms 7/12/2016 10:38", - "ssl:" : "ms 7/12/2016 10:38" } } + "ssl:" : "pm 6/9/2019 17:26" } } diff --git a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/properties.json b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/properties.json index f6d01a0f..c9a77370 100644 --- a/packages/IMAPClient-Tests.package/ICMockSocketStream.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICMockSocketStream.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/8/2019 15:50", "instvars" : [ "responseQueue", "connected", diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/README.md b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/README.md new file mode 100644 index 00000000..bea9b0e6 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/README.md @@ -0,0 +1 @@ +This test class conducts basic testing of the ICNullStream null object properties. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream..st b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream..st new file mode 100644 index 00000000..2358091d --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream..st @@ -0,0 +1,4 @@ +accessing +nullStream: anICNullStream + + nullStream := anICNullStream \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream.st b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream.st new file mode 100644 index 00000000..8776fbd6 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/nullStream.st @@ -0,0 +1,4 @@ +accessing +nullStream + + ^ nullStream \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/setUp.st new file mode 100644 index 00000000..0fd9467f --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/setUp.st @@ -0,0 +1,4 @@ +running +setUp + + self nullStream: ICNullStream new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/testNullObjectBehavior.st b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/testNullObjectBehavior.st new file mode 100644 index 00000000..efbb7c22 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/instance/testNullObjectBehavior.st @@ -0,0 +1,9 @@ +testing +testNullObjectBehavior + + self assert: true equals: self nullStream close. + self assert: false equals: self nullStream isConnected. + self assert: String empty equals: self nullStream nextLine. + + self assert: false equals: (self nullStream sendCommand: String empty). + self assert: false equals: (self nullStream sendCommand: '12345abcedfg') \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/methodProperties.json new file mode 100644 index 00000000..c1356cf3 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/methodProperties.json @@ -0,0 +1,8 @@ +{ + "class" : { + }, + "instance" : { + "nullStream" : "ok 7/25/2019 20:23", + "nullStream:" : "ok 7/25/2019 20:23", + "setUp" : "ok 7/25/2019 20:24", + "testNullObjectBehavior" : "ok 7/25/2019 20:25" } } diff --git a/packages/IMAPClient-Tests.package/ICNullStreamTest.class/properties.json b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/properties.json new file mode 100644 index 00000000..2d0540f7 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICNullStreamTest.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "IMAPClient-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "tg 7/25/2019 13:20", + "instvars" : [ + "nullStream" ], + "name" : "ICNullStreamTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/IMAPClient-Tests.package/ICParserTest.class/README.md b/packages/IMAPClient-Tests.package/ICParserTest.class/README.md new file mode 100644 index 00000000..a0db317b --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/README.md @@ -0,0 +1 @@ +This tests the ICParser by parsing hardcoded server responses. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/expectedNumberOfMails.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/expectedNumberOfMails.st similarity index 58% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/expectedNumberOfMails.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/class/expectedNumberOfMails.st index bd42c78a..756918d8 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/expectedNumberOfMails.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/expectedNumberOfMails.st @@ -1,4 +1,4 @@ -as yet unclassified +constants expectedNumberOfMails ^ 1 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExampleResponse.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExampleResponse.st similarity index 94% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExampleResponse.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExampleResponse.st index 539c945b..f2dcc0ea 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExampleResponse.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExampleResponse.st @@ -1,4 +1,4 @@ -as yet unclassified +constants firstExampleResponse ^ ('* ', self firstMessageID ,' FETCH (BODY[HEADER.FIELDS (from to subject date)] {103}', Character cr, diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedMailObject.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedMailObject.st similarity index 82% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedMailObject.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedMailObject.st index adabba32..8c82b59a 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedMailObject.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedMailObject.st @@ -1,4 +1,4 @@ -as yet unclassified +constants firstExpectedMailObject ^ ICEmail new @@ -6,5 +6,5 @@ firstExpectedMailObject from: 'test@example.de'; to: (OrderedCollection newFrom: { 'student@hpi.de' }); subject: 'test mail'; - uid: (self firstUID); + uniqueID: (self firstUID); yourself \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedResponse.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedResponse.st similarity index 94% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedResponse.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedResponse.st index c9fa8393..29223725 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstExpectedResponse.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstExpectedResponse.st @@ -1,4 +1,4 @@ -as yet unclassified +constants firstExpectedResponse ^ ('BODY[HEADER.FIELDS (from to subject date)] ', Character cr, diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstMessageID.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstMessageID.st similarity index 55% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstMessageID.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/class/firstMessageID.st index df2f21c7..09db37cf 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/class/firstMessageID.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstMessageID.st @@ -1,4 +1,4 @@ -as yet unclassified +constants firstMessageID ^ '364' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstUID.st b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstUID.st new file mode 100644 index 00000000..6f70c19b --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/class/firstUID.st @@ -0,0 +1,4 @@ +constants +firstUID + + ^ '20' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint..st b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint..st new file mode 100644 index 00000000..9da1aa2d --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint..st @@ -0,0 +1,4 @@ +accessing +endpoint: anICEndPoint + + endpoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint.st b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint.st similarity index 100% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/endpoint.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/instance/endpoint.st diff --git a/packages/IMAPClient-Tests.package/ICParserTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/setUp.st new file mode 100644 index 00000000..eb5a76ac --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/setUp.st @@ -0,0 +1,4 @@ +running +setUp + + self endpoint: ICEndPoint new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/testParseSimpleFetch.st b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/testParseSimpleFetch.st similarity index 69% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/testParseSimpleFetch.st rename to packages/IMAPClient-Tests.package/ICParserTest.class/instance/testParseSimpleFetch.st index 8588d426..d2c423fb 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/instance/testParseSimpleFetch.st +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/instance/testParseSimpleFetch.st @@ -1,20 +1,20 @@ -as yet unclassified +testing testParseSimpleFetch | parseResult firstResult parsedMail givenMail | - parseResult := parser parse: (ReadStream on: (self class firstExampleResponse)). + parseResult := ICParser parseFetchMailStream: (ReadStream on: (self class firstExampleResponse)). firstResult := parseResult at: (self class firstMessageID). self assert: parseResult size equals: self class expectedNumberOfMails. self assert: (firstResult) equals: (self class firstExpectedResponse). "parse the mail into ICMail and compare" - parsedMail := self endpoint parseFetchHeader: firstResult withId: (parseResult keyAtValue: firstResult). + parsedMail := ICParser parseFetchHeader: firstResult withId: (parseResult keyAtValue: firstResult). givenMail := self class firstExpectedMailObject. self assert: parsedMail from equals: givenMail from. self assert: parsedMail to equals: givenMail to. self assert: parsedMail subject equals: givenMail subject. self assert: parsedMail date equals: givenMail date. - self assert: parsedMail uid equals: givenMail uid \ No newline at end of file + self assert: parsedMail uniqueID equals: givenMail uniqueID \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICParserTest.class/methodProperties.json similarity index 53% rename from packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/methodProperties.json rename to packages/IMAPClient-Tests.package/ICParserTest.class/methodProperties.json index 48fa4394..02066efa 100644 --- a/packages/IMAPClient-Tests.package/ICFetchResponseParserTest.class/methodProperties.json +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/methodProperties.json @@ -2,14 +2,12 @@ "class" : { "expectedNumberOfMails" : "dl 8/1/2017 16:25", "firstExampleResponse" : "C.G. 7/4/2018 13:21", - "firstExpectedMailObject" : "C.G. 7/4/2018 13:21", + "firstExpectedMailObject" : "pm 6/2/2019 15:58", "firstExpectedResponse" : "C.G. 7/4/2018 13:22", "firstMessageID" : "DH 7/4/2018 12:37", "firstUID" : "DH 7/4/2018 12:37" }, "instance" : { "endpoint" : "C.G. 7/25/2018 18:02", - "endpoint:" : "C.G. 7/25/2018 18:02", - "parser" : "C.G. 7/25/2018 18:02", - "parser:" : "C.G. 7/25/2018 18:02", - "setUp" : "C.G. 7/25/2018 18:02", - "testParseSimpleFetch" : "C.G. 7/4/2018 13:23" } } + "endpoint:" : "pm 6/9/2019 17:18", + "setUp" : "pm 7/25/2019 15:42", + "testParseSimpleFetch" : "pm 7/25/2019 15:40" } } diff --git a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/properties.json b/packages/IMAPClient-Tests.package/ICParserTest.class/properties.json similarity index 57% rename from packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/properties.json rename to packages/IMAPClient-Tests.package/ICParserTest.class/properties.json index 6c635055..978cd12e 100644 --- a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/properties.json +++ b/packages/IMAPClient-Tests.package/ICParserTest.class/properties.json @@ -4,11 +4,11 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "pm 7/25/2019 15:44", "instvars" : [ - ], - "name" : "IMAPClientTestsServiceProvider", + "endpoint" ], + "name" : "ICParserTest", "pools" : [ ], - "super" : "ServiceProvider", + "super" : "TestCase", "type" : "normal" } diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/README.md b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/README.md new file mode 100644 index 00000000..29e4e0fa --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/README.md @@ -0,0 +1 @@ +This test class conducts basic testing of the ICStreamWrapper connection capabilities. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverHost.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverHost.st new file mode 100644 index 00000000..96850a98 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverHost.st @@ -0,0 +1,4 @@ +constants +testserverHost + + ^ 'hpi.de' \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverPort.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverPort.st new file mode 100644 index 00000000..b48235b3 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverPort.st @@ -0,0 +1,4 @@ +constants +testserverPort + + ^ 80 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverSSLPort.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverSSLPort.st new file mode 100644 index 00000000..11dce174 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/class/testserverSSLPort.st @@ -0,0 +1,4 @@ +constants +testserverSSLPort + + ^ 443 \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/setUp.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/setUp.st new file mode 100644 index 00000000..5ac4c672 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/setUp.st @@ -0,0 +1,4 @@ +running +setUp + + self streamWrapper: ICStreamWrapper new. \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper..st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper..st new file mode 100644 index 00000000..237ce1ba --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper..st @@ -0,0 +1,4 @@ +accessing +streamWrapper: aStreamWrapper + + streamWrapper := aStreamWrapper \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper.st new file mode 100644 index 00000000..fcd2ae12 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/streamWrapper.st @@ -0,0 +1,4 @@ +accessing +streamWrapper + + ^ streamWrapper \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/tearDown.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/tearDown.st new file mode 100644 index 00000000..dc081f14 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/tearDown.st @@ -0,0 +1,4 @@ +running +tearDown + + self streamWrapper close \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testAccessors.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testAccessors.st new file mode 100644 index 00000000..6d049f9c --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testAccessors.st @@ -0,0 +1,12 @@ +testing +testAccessors + + self streamWrapper host: self class testserverHost. + self streamWrapper port: self class testserverPort. + + self + assert: self streamWrapper host + equals: self class testserverHost. + self + assert: self streamWrapper port + equals: self class testserverPort \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamConnection.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamConnection.st new file mode 100644 index 00000000..ff9dde78 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamConnection.st @@ -0,0 +1,6 @@ +testing +testStreamConnection + + self streamWrapper connectTo: self class testserverHost on: self class testserverPort. + + self assert: self streamWrapper isConnected \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamSSLConnection.st b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamSSLConnection.st new file mode 100644 index 00000000..5fed0ec6 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/instance/testStreamSSLConnection.st @@ -0,0 +1,6 @@ +testing +testStreamSSLConnection + + self streamWrapper sslConnectTo: self class testserverHost on: self class testserverSSLPort. + + self assert: self streamWrapper isConnected \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/methodProperties.json b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/methodProperties.json new file mode 100644 index 00000000..dd01f127 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/methodProperties.json @@ -0,0 +1,13 @@ +{ + "class" : { + "testserverHost" : "ok 7/25/2019 20:16", + "testserverPort" : "ok 7/25/2019 20:16", + "testserverSSLPort" : "ok 7/25/2019 20:17" }, + "instance" : { + "setUp" : "ok 7/25/2019 20:17", + "streamWrapper" : "ok 7/25/2019 20:18", + "streamWrapper:" : "ok 7/25/2019 20:18", + "tearDown" : "ok 7/25/2019 20:17", + "testAccessors" : "ok 7/25/2019 20:24", + "testStreamConnection" : "ok 7/25/2019 20:24", + "testStreamSSLConnection" : "ok 7/25/2019 20:24" } } diff --git a/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/properties.json b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/properties.json new file mode 100644 index 00000000..1afef725 --- /dev/null +++ b/packages/IMAPClient-Tests.package/ICStreamWrapperTest.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "IMAPClient-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "ok 7/9/2019 19:36", + "instvars" : [ + "streamWrapper" ], + "name" : "ICStreamWrapperTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/README.md b/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/class/initialize.st b/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/class/initialize.st deleted file mode 100644 index dead3973..00000000 --- a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/class/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -initialization -initialize - - ServiceRegistry current buildProvider: self new \ No newline at end of file diff --git a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/methodProperties.json b/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/methodProperties.json deleted file mode 100644 index 9979ac9c..00000000 --- a/packages/IMAPClient-Tests.package/IMAPClientTestsServiceProvider.class/methodProperties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "class" : { - "initialize" : "C.G. 7/25/2018 18:14" }, - "instance" : { - } } diff --git a/packages/IMAPClient-UI.package/.squot-contents b/packages/IMAPClient-UI.package/.squot-contents index 460ade30..4ad0c330 100644 --- a/packages/IMAPClient-UI.package/.squot-contents +++ b/packages/IMAPClient-UI.package/.squot-contents @@ -1,4 +1,4 @@ SquotTrackedObjectMetadata { #objectClassName : #PackageInfo, #serializer : #SquotCypressCodeSerializer -} +} \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICEmail.class/instance/defaultSubject.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/class/defaultSubject.st similarity index 76% rename from packages/IMAPClient-Core.package/ICEmail.class/instance/defaultSubject.st rename to packages/IMAPClient-UI.package/ICEmailDialog.class/class/defaultSubject.st index ce906af9..2255fbb1 100644 --- a/packages/IMAPClient-Core.package/ICEmail.class/instance/defaultSubject.st +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/class/defaultSubject.st @@ -1,4 +1,4 @@ -constants +defaults defaultSubject ^ '(no subject)' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getBody.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/body.st similarity index 75% rename from packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getBody.st rename to packages/IMAPClient-UI.package/ICEmailDialog.class/instance/body.st index 58e08698..e51047c4 100644 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getBody.st +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/body.st @@ -1,9 +1,9 @@ email access -getBody +body | mimeDoc body | - body := email retrieveBody. + body := self email retrieveBody. mimeDoc := MailMessage new initializeFromString: body. ^ mimeDoc bodyTextFormatted \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildBody..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildBody..st new file mode 100644 index 00000000..e794fe05 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildBody..st @@ -0,0 +1,9 @@ +toolbuilder +buildBody: builder + + ^ builder pluggableTextSpec new + model: self; + readOnly: true; + indicateUnacceptedChanges: false; + getText: #body; + frame: (0 @ 0.2 extent: 1 @ 0.8) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildRecipient..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildRecipient..st new file mode 100644 index 00000000..d46b10a3 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildRecipient..st @@ -0,0 +1,10 @@ +toolbuilder +buildRecipient: builder + + ^ builder pluggableInputFieldSpec new + model: self; + color: #checkBoxColor; + readOnly: true; + indicateUnacceptedChanges: false; + getText: #recipients; + frame: (0 @ 0.1333 extent: 1 @ 0.0666) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSenderLabel..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSenderLabel..st new file mode 100644 index 00000000..06846903 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSenderLabel..st @@ -0,0 +1,10 @@ +toolbuilder +buildSenderLabel: builder + + ^ builder pluggableInputFieldSpec new + model: self; + color: #checkBoxColor; + readOnly: true; + indicateUnacceptedChanges: false; + getText: #sender; + frame: (0 @ 0 extent: 1 @ 0.0666) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSubject..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSubject..st new file mode 100644 index 00000000..9c7d0964 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildSubject..st @@ -0,0 +1,11 @@ +toolbuilder +buildSubject: builder + + ^ builder pluggableInputFieldSpec new + model: self; + color: #checkBoxColor; + readOnly: true; + font: (Preferences standardDefaultTextFont emphasized: 1); + indicateUnacceptedChanges: false; + getText: #subject; + frame: (0 @ 0.0666 extent: 1 @ 0.0666) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildWith..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildWith..st index fa3d16a8..7c8d206d 100644 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildWith..st +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/buildWith..st @@ -1,54 +1,13 @@ toolbuilder buildWith: builder - | window windowSpec senderLabelSpec subjectSpec bodySpec recipientSpec | - windowSpec := builder pluggableWindowSpec new. - windowSpec + ^ builder build: (builder pluggableWindowSpec new model: self; label: self dialogTitle; children: OrderedCollection new; - extent: 600 @ 400. - - senderLabelSpec := builder pluggableInputFieldSpec new. - senderLabelSpec - model: self; - color: #checkBoxColor; - readOnly: true; - indicateUnacceptedChanges: false; - getText: #getSender; - frame: (0 @ 0 extent: 1 @ 0.0666). - - subjectSpec := builder pluggableInputFieldSpec new. - subjectSpec - model: self; - color: #checkBoxColor; - readOnly: true; - font: (Preferences standardDefaultTextFont emphasized: 1); - indicateUnacceptedChanges: false; - getText: #getSubject; - frame: (0 @ 0.0666 extent: 1 @ 0.0666). - - recipientSpec := builder pluggableInputFieldSpec new. - recipientSpec - model: self; - color: #checkBoxColor; - readOnly: true; - indicateUnacceptedChanges: false; - getText: #getRecipients; - frame: (0 @ 0.1333 extent: 1 @ 0.0666). - - bodySpec := builder pluggableTextSpec new. - bodySpec - model: self; - readOnly: true; - indicateUnacceptedChanges: false; - getText: #getBody; - frame: (0 @ 0.2 extent: 1 @ 0.8). - - windowSpec children addAll: {senderLabelSpec . subjectSpec . recipientSpec . bodySpec}. - - window := builder build: windowSpec. - - self changed: #checkBoxColor. - - ^ window \ No newline at end of file + extent: 600 @ 400; + children: { + self buildSenderLabel: builder. + self buildSubject: builder. + self buildRecipient: builder. + self buildBody: builder}) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/dialogTitle.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/dialogTitle.st index 47239fba..e4dee937 100644 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/dialogTitle.st +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/dialogTitle.st @@ -1,4 +1,4 @@ toolbuilder dialogTitle - ^ self getSubject \ No newline at end of file + ^ self subject \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/email..st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/email..st index db98607c..50d1374c 100644 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/email..st +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/email..st @@ -1,4 +1,4 @@ accessing -email: anObject +email: anICEmail - email := anObject \ No newline at end of file + email := anICEmail \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getColor.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getColor.st deleted file mode 100644 index 7ebf94e6..00000000 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getColor.st +++ /dev/null @@ -1,4 +0,0 @@ -user interface -getColor - - ^ Color transparent \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getRecipients.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getRecipients.st deleted file mode 100644 index 3c45d00e..00000000 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getRecipients.st +++ /dev/null @@ -1,4 +0,0 @@ -email access -getRecipients - - ^ email to joinSeparatedBy: ';' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSender.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSender.st deleted file mode 100644 index 653f9702..00000000 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSender.st +++ /dev/null @@ -1,4 +0,0 @@ -email access -getSender - - ^ email from \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSubject.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSubject.st deleted file mode 100644 index f3cc2682..00000000 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/getSubject.st +++ /dev/null @@ -1,4 +0,0 @@ -email access -getSubject - - ^ email subject \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/recipients.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/recipients.st new file mode 100644 index 00000000..fa053428 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/recipients.st @@ -0,0 +1,4 @@ +email access +recipients + + ^ self email to joinSeparatedBy: ';' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/sender.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/sender.st new file mode 100644 index 00000000..e179743d --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/sender.st @@ -0,0 +1,4 @@ +email access +sender + + ^ self email from \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/subject.st b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/subject.st new file mode 100644 index 00000000..28fb411f --- /dev/null +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/instance/subject.st @@ -0,0 +1,4 @@ +email access +subject + + ^ self email subject ifEmpty: [^ self class defaultSubject] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICEmailDialog.class/methodProperties.json b/packages/IMAPClient-UI.package/ICEmailDialog.class/methodProperties.json index b6d9e2e8..571359b4 100644 --- a/packages/IMAPClient-UI.package/ICEmailDialog.class/methodProperties.json +++ b/packages/IMAPClient-UI.package/ICEmailDialog.class/methodProperties.json @@ -1,16 +1,20 @@ { "class" : { + "defaultSubject" : "tg 7/19/2019 11:48", "open" : "ms 7/9/2016 16:43", "openWith:" : "ms 7/9/2016 16:56" }, "instance" : { - "buildWith:" : "C.G. 7/25/2018 14:14", + "body" : "tg 7/26/2019 21:40", + "buildBody:" : "pm 6/25/2019 16:29", + "buildRecipient:" : "pm 6/25/2019 16:29", + "buildSenderLabel:" : "pm 6/25/2019 16:28", + "buildSubject:" : "pm 6/25/2019 16:28", + "buildWith:" : "pm 6/25/2019 16:36", "checkBoxColor" : "ms 7/13/2016 17:34", "defaultBackgroundColor" : "ms 7/11/2016 16:34", - "dialogTitle" : "ms 7/9/2016 17:31", + "dialogTitle" : "pm 6/3/2019 18:42", "email" : "ms 7/9/2016 16:56", - "email:" : "C.G. 7/25/2018 14:14", - "getBody" : "C.G. 7/25/2018 14:14", - "getColor" : "C.G. 7/25/2018 14:15", - "getRecipients" : "ms 7/10/2016 13:56", - "getSender" : "ms 7/10/2016 13:56", - "getSubject" : "ms 7/9/2016 17:16" } } + "email:" : "pm 6/9/2019 17:01", + "recipients" : "tg 7/26/2019 21:40", + "sender" : "tg 7/26/2019 21:40", + "subject" : "tg 7/26/2019 21:40" } } diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/class/addUserIcon.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/addUserIcon.st new file mode 100644 index 00000000..8b1e771e --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/addUserIcon.st @@ -0,0 +1,10 @@ +constants +addUserIcon + "The 'user-plus' icon taken from https://fontawesome.com/icons/user-plus as 20@16. + Licensed under https://fontawesome.com/license." + ^ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: +'iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAAzElEQVR4Xq2RMQrCQBBFcwyR +WOdqWqRIZZtCwc4DiOkNgRwg2uUi2hlUTCoFMf6FvxDC7oQsDrxidz6P3RnPUDOQgYbkIPAc +S8nuoO3xYG90ZQaZJnURNoKw/rfwaciH7IU2YS4ID4Z8zF5sEwZcQF92A34ntwBLULBf8Dy3 +bTrlzGq+zO9lWgGnisAGlJSUPEc6MAUJqMAHHMGWnHinenswGZqhkl0GvtHl3JEat5yMkGl2 +0jwqB+FVErYOfCXh20H4koTrkVKVXdlkPz8IoEMpApVWAAAAAElFTkSuQmCC' readStream) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/class/install.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/install.st new file mode 100644 index 00000000..32f2854b --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/install.st @@ -0,0 +1,8 @@ +instance creation +install + + TheWorldMenu registerOpenCommand: { + 'IMAP Client'. + { self. #new }. + 'Start the IMAP Client' + } \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/class/loadEmailBodyFailure.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/loadEmailBodyFailure.st new file mode 100644 index 00000000..45efd4f0 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/class/loadEmailBodyFailure.st @@ -0,0 +1,6 @@ +errors +loadEmailBodyFailure + + ^ 'Loading Body of the Mail failed. + This typically happens it the Mails was moved/deleted on another device. + Use Update Button to update Mailbox Status.' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/accountsComplete.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/accountsComplete.st index 3f830aac..cfa79b23 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/accountsComplete.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/accountsComplete.st @@ -1,13 +1,12 @@ accountManagment accountsComplete - "all accounts are have received their password" - - self emailAccounts: (ICHelper accountDictionariesToEndpoints: (self initializedAccounts)). + self emailAccounts: (self initializedAccounts collect: [:configData | + ICEndPoint new connectAndLoginWith: (ICAccountInfo newWith: configData)]). "let all Endpoints preload their file structure and configure them to prevent timeouts" self emailAccounts do: [:endpoint | - self getFolderWith: endpoint. + self folderWith: endpoint. endpoint preventTimeout]. ToolBuilder default open: self \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccount..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccount..st index cc899de0..5cc02393 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccount..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccount..st @@ -1,11 +1,6 @@ accountManagment -addAccount: aDataDictionary - - | data | +addAccount: anAccountInfo - data := OrderedCollection new. - data add: aDataDictionary. - - ICHelper saveCredentialsIntoFile: aDataDictionary. - self emailAccounts add: ((ICHelper accountDictionariesToEndpoints: data) at: 1). + ICEndPoint addConfiguration: anAccountInfo asDictionary. + self emailAccounts add: (ICEndPoint new connectAndLoginWith: anAccountInfo). self changed: #emailAccounts \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addPasswordToCollection..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addPasswordToCollection..st deleted file mode 100644 index 2e55f2f1..00000000 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addPasswordToCollection..st +++ /dev/null @@ -1,17 +0,0 @@ -accountManagment -addPasswordToCollection: aDictionary - - "this is the callback method for the ICPasswordPrompt" - - | nextAccount | - - self initializedAccounts add: aDictionary. - - "delete the newly initialized account from uninitializedAccounts" - nextAccount := self uninitializedAccounts findFirst: [:account | (account at: 'name') = (aDictionary at: 'name')]. - self uninitializedAccounts removeAt: nextAccount. - - "if there are yet uninitializedAccounts, open a ICPasswordPrompt for them" - (uninitializedAccounts isEmpty) - ifTrue: [self accountsComplete] - ifFalse: [ICPasswordDialog openWith: (self uninitializedAccounts first) and: self] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildAddAccountButton..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildAddAccountButton..st new file mode 100644 index 00000000..dd6e476d --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildAddAccountButton..st @@ -0,0 +1,8 @@ +toolbuilder +buildAddAccountButton: builder + + ^ builder pluggableButtonSpec new + model: self; + frame: (0.8 @ 0 corner: 1 @ 0.05); + label: self class addUserIcon; + action: #createAccount \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailButton..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailButton..st new file mode 100644 index 00000000..b5cf275b --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailButton..st @@ -0,0 +1,8 @@ +toolbuilder +buildEmailButton: builder + + ^ builder pluggableButtonSpec new + model: self; + frame: (0 @ 0 corner: 0.8 @ 0.05); + label: 'Update'; + action: #update \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailList..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailList..st new file mode 100644 index 00000000..f20c1d74 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailList..st @@ -0,0 +1,25 @@ +toolbuilder +buildEmailList: builder + + ^ builder pluggableTreeSpec new + model: self; + roots: #emailsOfSelectedFolder; + label: #labelForMail:; + setSelected: #selectedEmail:; + getSelected: #selectedEmail; + doubleClick: #openEmail:; + keyPress: #emailListKeyPress:; + hScrollBarPolicy: #always; + vScrollBarPolicy: #always; + menu: #emailListMenu:; + autoDeselect: false; + columns: { + [:listMorph | self emphasizeUnseenMessages: listMorph filteredItems. + (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 1]) max]. + [:listMorph | (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 2]) max]. + [:listMorph | (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 3]) max].}; + frame: (0.2 @ 0.05 extent: 0.8 @ 0.95); + color: (Color white) diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailSearch..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailSearch..st new file mode 100644 index 00000000..508f5b93 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailSearch..st @@ -0,0 +1,12 @@ +toolbuilder +buildEmailSearch: builder + + ^ builder pluggableInputFieldSpec new + model: self; + frame: (0 @ 0 extent: 0.8 @ 1); + editText: #changeFilter:; + setText: #filterString:; + getText: #filterString; + help: #emailSearchHelp; + askBeforeDiscardingEdits: true; + indicateUnacceptedChanges: false \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailTopPanel..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailTopPanel..st new file mode 100644 index 00000000..6f6375c6 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildEmailTopPanel..st @@ -0,0 +1,10 @@ +toolbuilder +buildEmailTopPanel: builder + + ^ builder pluggablePanelSpec new + wantsResizeHandles: true; + model: self; + frame: (0.2 @ 0 extent: 0.8 @ 0.05); + children: { + self buildEmailSearch: builder. + self buildLoadOlderEmailsButton: builder} \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildFolderTree..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildFolderTree..st new file mode 100644 index 00000000..52a64115 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildFolderTree..st @@ -0,0 +1,19 @@ +toolbuilder +buildFolderTree: builder + + ^ builder pluggableTreeSpec new + model: self; + roots: #childFolders; + setSelected: #selectedFolder:; + getSelected: #selectedFolder; + getChildren: #subFoldersOf:; + label: #labelForFolder:; + autoDeselect: false; + frame: (0 @ 0.15 corner: 1 @ 1); + columns: { + [:listMorph | self emphasizeUnseenFolders: listMorph filteredItems. + (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 1]) max]. + [:listMorph | + (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 2]) max]} \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildLoadOlderEmailsButton..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildLoadOlderEmailsButton..st new file mode 100644 index 00000000..446c7f24 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildLoadOlderEmailsButton..st @@ -0,0 +1,8 @@ +toolbuilder +buildLoadOlderEmailsButton: builder + + ^ builder pluggableButtonSpec new + model: self; + frame: (0.8 @ 0 extent: 0.2 @ 1); + label: 'Load older Emails'; + action: #loadOlderEmails \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildNavigationPanel..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildNavigationPanel..st new file mode 100644 index 00000000..1a3e4295 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildNavigationPanel..st @@ -0,0 +1,12 @@ +toolbuilder +buildNavigationPanel: builder + + ^ builder pluggablePanelSpec new + wantsResizeHandles: true; + model: self; + frame: (0 @ 0 extent: 0.2 @ 1); + children: { + self buildAddAccountButton: builder. + self buildEmailButton: builder. + self buildUserList: builder. + self buildFolderTree: builder} \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildUserList..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildUserList..st new file mode 100644 index 00000000..e637e95a --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildUserList..st @@ -0,0 +1,19 @@ +toolbuilder +buildUserList: builder + + ^ builder pluggableTreeSpec new + model: self; + roots: #emailAccounts; + label: #labelForAccount:; + menu: #userListMenu:; + autoDeselect: false; + getSelected: #selectedEndpoint; + setSelected: #selectedEndpoint:; + frame: (0 @ 0.05 corner: 1 @ 0.15); + columns: { + [:listMorph | self emphasizeUnseenAccounts: listMorph filteredItems. + (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 1]) max]. + [:listMorph | + (listMorph filteredItems collect: [:item | + item preferredWidthOfColumn: 2]) max]} \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildWith..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildWith..st index 487e10ae..1dea84cf 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildWith..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/buildWith..st @@ -1,101 +1,13 @@ toolbuilder buildWith: builder - | window windowSpec emailButtonSpec addAccountButtonSpec userListSpec folderTreeSpec emailListSpec emailSearchSpec | - - windowSpec := builder pluggableWindowSpec new. - windowSpec + ^ builder build: (builder pluggableWindowSpec new model: self; label: self dialogTitle; children: OrderedCollection new; closeAction: #closeConnection; - extent: 1200 @ 600. - - userListSpec := builder pluggableTreeSpec new. - userListSpec - model: self; - roots: #emailAccounts; - label: #labelForAccount:; - menu: #userListMenu:; - autoDeselect: false; - getSelected: #selectedAccount; - setSelected: #selectedAccount:; - frame: (0 @ 0.05 extent: 0.2 @ 0.1); - columns: { - [:listMorph | self emphasizeUnseenAccounts: listMorph filteredItems. - (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 1]) max]. - [:listMorph | - (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 2]) max]}. - - emailButtonSpec := builder pluggableButtonSpec new. - emailButtonSpec - model: self; - frame: (0 @ 0 extent: 0.15 @ 0.05); - label: 'Update'; - action: #update. - - addAccountButtonSpec := builder pluggableButtonSpec new. - addAccountButtonSpec - model: self; - frame: (0.15 @ 0 extent: 0.05 @ 0.05); - label: '+'; - action: #addAccountButton. - - folderTreeSpec := builder pluggableTreeSpec new. - folderTreeSpec - model: self; - roots: #childFolders; - setSelected: #selectedFolder:; - getSelected: #selectedFolder; - getChildren: #subFoldersOf:; - label: #labelForFolder:; - autoDeselect: false; - frame: (0 @ 0.15 extent: 0.2 @ 0.85); - columns: { - [:listMorph | self emphasizeUnseenFolders: listMorph filteredItems. - (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 1]) max]. - [:listMorph | - (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 2]) max]}. - - emailSearchSpec := builder pluggableInputFieldSpec new. - emailSearchSpec - model: self; - frame: (0.2 @ 0 extent: 0.8 @ 0.05); - askBeforeDiscardingEdits: false; - editText: #changeFilter:; - help: #emailSearchHelp; - indicateUnacceptedChanges: false. - - emailListSpec := builder pluggableTreeSpec new. - emailListSpec - model: self; - roots: #emailsOfSelectedFolder; - label: #labelForMail:; - setSelected: #selectedEmail:; - getSelected: #selectedEmail; - hScrollBarPolicy: #always; - vScrollBarPolicy: #always; - menu: #emailListMenu:; - autoDeselect: false; - columns: { - [:listMorph | self emphasizeUnseenMessages: listMorph filteredItems. - (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 1]) max]. - [:listMorph | (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 2]) max]. - [:listMorph | (listMorph filteredItems collect: [:item | - item preferredWidthOfColumn: 3]) max].}; - frame: (0.2 @ 0.05 extent: 0.8 @ 0.95); - color: (Color white). - - windowSpec children - addAll: {emailButtonSpec . addAccountButtonSpec . userListSpec . folderTreeSpec . emailListSpec . emailSearchSpec}. - - window := builder build: windowSpec. - window on: #keyStroke send: #keyEvent: to: self. - - ^ window \ No newline at end of file + extent: 1200 @ 600; + children: { + self buildNavigationPanel: builder. + self buildEmailTopPanel: builder. + self buildEmailList: builder.}) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeAccounts..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeAccounts..st deleted file mode 100644 index 186f2d96..00000000 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeAccounts..st +++ /dev/null @@ -1,15 +0,0 @@ -accountManagment -changeAccounts: anAccount - - - anAccount ifNil: [^self]. - self getFolderWith: anAccount. - - self rootFolder: (Array with: anAccount rootFolder). - self selectedFolder: nil. - - self - changed: #selectedFolder; - changed: #rootFolder; - changed: #childFolders; - changed: #emailsOfSelectedFolder \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeFilter..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeFilter..st index e1194e18..224f74c4 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeFilter..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/changeFilter..st @@ -1,6 +1,5 @@ get emails changeFilter: aText - self filterString: aText asString; changed: #emailsOfSelectedFolder \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/childFolders.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/childFolders.st index a5aa1a51..be96dc53 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/childFolders.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/childFolders.st @@ -4,4 +4,4 @@ childFolders (self rootFolder) ifNil: [^ OrderedCollection new]. - ^ (self rootFolder at: 1) childFolders \ No newline at end of file + ^ self rootFolder childFolders \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/closeConnection.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/closeConnection.st index f71d81af..9182388a 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/closeConnection.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/closeConnection.st @@ -3,6 +3,6 @@ closeConnection (self rootFolder) ifNotNil: [ - [self rootFolder first endpoint close] + [self rootFolder endpoint close] on: Error do: [:e | self inform: 'Error occured during closing:', e]] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccountButton.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/createAccount.st similarity index 71% rename from packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccountButton.st rename to packages/IMAPClient-UI.package/ICFolderDialog.class/instance/createAccount.st index fc80944d..5f99a9c0 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/addAccountButton.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/createAccount.st @@ -1,4 +1,4 @@ accountManagment -addAccountButton +createAccount ICLoginDialog open: self \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteAccountButton..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteAccountButton..st index ec7206d9..0a4e5158 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteAccountButton..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteAccountButton..st @@ -1,8 +1,8 @@ accountManagment -deleteAccountButton: account +deleteAccountButton: anICEndpoint - ICHelper deleteAccountFromEndpoint: account. - self emailAccounts remove: account. + ICEndPoint removeConfiguration: (anICEndpoint accountInfo asDictionary). + self emailAccounts remove: anICEndpoint. self selectedFolder: nil. self rootFolder: nil. diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteEmail.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteEmail.st index 0cac9260..4183aaeb 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteEmail.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/deleteEmail.st @@ -1,11 +1,11 @@ email selection deleteEmail - - selectedEmail retrieveFlags. - (selectedEmail deleted) - ifTrue: [selectedEmail expungeEmails] - ifFalse: [selectedEmail deleteEmail]. + self selectedEmail retrieveFlags. + + (self selectedEmail deleted) + ifTrue: [self selectedEmail expungeEmails] + ifFalse: [self selectedEmail deleteEmail]. self selectedEmail: nil. self diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccount.with..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccount.with..st index 5622225e..8735fce3 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccount.with..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccount.with..st @@ -1,25 +1,14 @@ accountManagment -editAccount: newData with: anEndPoint +editAccount: anAccountInfo with: anEndPoint - "callback method for dialog. newData contains the updated Data, while previousData - contains the old data" - - | data | - - data := OrderedCollection new. - data add: newData. - - ICHelper deleteAccountFromEndpoint: anEndPoint. + ICEndPoint removeConfiguration: anEndPoint. self emailAccounts remove: anEndPoint. - ICHelper saveCredentialsIntoFile: newData. + ICEndPoint addConfiguration: anAccountInfo asDictionary. - self emailAccounts add: ((ICHelper accountDictionariesToEndpoints: data) at: 1). + self emailAccounts add: (ICEndPoint new connectAndLoginWith: anAccountInfo). self selectedFolder: nil. self rootFolder: nil. - self changed: #selectedFolder. - self changed: #rootFolder. - self changed: #childFolders. - self changed: #emailsOfSelectedFolder. - self changed: #emailAccounts \ No newline at end of file + self triggerBasicChanges. + self changed: #emailAccounts. \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccountButton..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccountButton..st index c6ef5787..421840ef 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccountButton..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/editAccountButton..st @@ -1,6 +1,4 @@ accountManagment editAccountButton: account - - "open dialog with existing data" ICLoginDialog open: self with: account \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPress..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPress..st new file mode 100644 index 00000000..864f8814 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPress..st @@ -0,0 +1,8 @@ +events +emailListKeyPress: aKey + + self emailListKeyPressMapping at: (aKey asLowercase) ifPresent: [ :anAction | + anAction value. + ^ true + ] ifAbsent: [^ false]. + ^ false \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPressMapping.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPressMapping.st new file mode 100644 index 00000000..31d61b81 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListKeyPressMapping.st @@ -0,0 +1,6 @@ +events +emailListKeyPressMapping + + ^ { + $o -> [self selectedEmail ifNotNil: [self openEmail: self selectedEmail]] + } asDictionary \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListMenu..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListMenu..st index de27fd88..b048e043 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListMenu..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailListMenu..st @@ -3,9 +3,6 @@ emailListMenu: aMenu self selectedEmail ifNil: [^ aMenu]. - "ICLoadOlderMail shouldnt open context menu" - self selectedEmail isFlaggable ifFalse: [^ aMenu]. - "update the flags of the mail" self selectedEmail retrieveFlags. @@ -18,7 +15,7 @@ emailListMenu: aMenu ifTrue: ['Unflag'] ifFalse: ['Mark as flagged']) action: [self modifyFlag: #flagged]; - add: (self labelForDeletionAction: self selectedEmail folder name) + add: (self labelForDeletionAction: self selectedEmail folder folderName) action: #deleteEmail; add: 'Move to ...' subMenu: self folderListMenu. diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailsOfSelectedFolder.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailsOfSelectedFolder.st index 40266bef..de884035 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailsOfSelectedFolder.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/emailsOfSelectedFolder.st @@ -11,6 +11,5 @@ emailsOfSelectedFolder self filterString notEmpty ifTrue: [^ emails select: [:anICEmail | (self labelForMail: anICEmail) includesSubstring: self filterString caseSensitive: false]]. - emails add: (ICLoadOlderMail instanceFor: self). ^ emails \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/filterString..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/filterString..st index c0aff2bc..9829058d 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/filterString..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/filterString..st @@ -1,4 +1,3 @@ accessing filterString: aString - filterString := aString \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderListMenu.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderListMenu.st index 9231eb69..543502b6 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderListMenu.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderListMenu.st @@ -4,7 +4,7 @@ folderListMenu | aMenu folders | aMenu := MenuMorph new. - folders := ICHelper getAllFolders: ((self rootFolder) asOrderedCollection). + folders := self rootFolder recursiveChildFolders. folders allButFirst do: [:each | aMenu diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderNameOf..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderNameOf..st index abcf6f3b..d8a45400 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderNameOf..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderNameOf..st @@ -1,8 +1,5 @@ folder selection folderNameOf: folder - - "folder is a child of a folder, which is not the root folder - this is an easy way to indent entries" | levelCounter offset currentFolder | @@ -10,11 +7,11 @@ folderNameOf: folder offset := ''. currentFolder := folder. - [(currentFolder parent ~= currentFolder) and: (currentFolder parent ~= (self rootFolder at:1))] + [(currentFolder parent ~= currentFolder) and: [(currentFolder parent ~= self rootFolder)]] whileTrue: [ levelCounter := levelCounter + 1. currentFolder := currentFolder parent]. 1 to: levelCounter do: [ :i | offset := offset , ' ']. - ^ offset, folder name \ No newline at end of file + ^ offset, folder folderName \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/getFolderWith..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderWith..st similarity index 80% rename from packages/IMAPClient-UI.package/ICFolderDialog.class/instance/getFolderWith..st rename to packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderWith..st index f088ed62..f99b3365 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/getFolderWith..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/folderWith..st @@ -1,5 +1,5 @@ folder selection -getFolderWith: endpoint +folderWith: endpoint ^ endpoint checkConnected; diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initialize.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initialize.st index 213e8d93..b9c96055 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initialize.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initialize.st @@ -1,14 +1,8 @@ initialization initialize - - "get config data as credentials" - - | accounts | - - accounts := ICHelper loadCredentialsIntoDictionaries. - - self uninitializedAccounts: accounts. - self initializedAccounts: OrderedCollection new. + + self uninitializedAccounts: ICEndPoint connectionConfigurations. + (self uninitializedAccounts) ifEmpty: [self accountsComplete] diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts..st index e5105c6f..7186d8e3 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts..st @@ -1,4 +1,4 @@ accessing -initializedAccounts: anObject +initializedAccounts: anOrderedCollection - initializedAccounts := anObject \ No newline at end of file + initializedAccounts := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts.st index 67b5cf96..5531621b 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/initializedAccounts.st @@ -1,4 +1,4 @@ accessing initializedAccounts - ^ initializedAccounts \ No newline at end of file + ^ initializedAccounts ifNil: [initializedAccounts := OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/keyEvent..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/keyEvent..st deleted file mode 100644 index b28c333d..00000000 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/keyEvent..st +++ /dev/null @@ -1,4 +0,0 @@ -events -keyEvent: aKey - - "do nothing for the moment." \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForAccount..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForAccount..st index ccb84e28..62b54535 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForAccount..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForAccount..st @@ -5,5 +5,5 @@ labelForAccount: anICEndpoint countOfUnseenMails := anICEndpoint rootFolder numOfUnseenMails. countOfUnseenMails > 0 - ifTrue: [^ anICEndpoint name, Character tab, '[' , countOfUnseenMails asString, ']'] - ifFalse: [^ anICEndpoint name, Character tab, ''] \ No newline at end of file + ifTrue: [^ anICEndpoint accountInfo accountName, Character tab, '[' , countOfUnseenMails asString, ']'] + ifFalse: [^ anICEndpoint accountInfo accountName, Character tab, ''] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForFolder..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForFolder..st index 69929e5c..167f3cdd 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForFolder..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForFolder..st @@ -5,5 +5,5 @@ labelForFolder: anICFolder countOfUnseenMails := anICFolder numOfUnseenMails. countOfUnseenMails > 0 - ifTrue: [^ anICFolder name, Character tab, '[', countOfUnseenMails asString, ']'] - ifFalse: [^ anICFolder name, Character tab, ''] \ No newline at end of file + ifTrue: [^ anICFolder folderName, Character tab, '[', countOfUnseenMails asString, ']'] + ifFalse: [^ anICFolder folderName, Character tab, ''] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForMail..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForMail..st index c5897e3f..8043756b 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForMail..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/labelForMail..st @@ -1,17 +1,18 @@ email selection labelForMail: anICEmail - | fromCollection label | + | fromCollection subject label | fromCollection := anICEmail from findBetweenSubStrs: '<>'. - label := (anICEmail subject truncateTo: 80), + subject := anICEmail subject ifEmpty: [ICEmailDialog defaultSubject]. + + label := (subject truncateTo: 80), Character tab, (fromCollection at: 2 ifAbsent: [fromCollection at: 1 ifAbsent: ['']]), Character tab, - anICEmail getDateFormatted. + anICEmail dateFormatted. - (anICEmail isFlaggable) ifFalse: [^ label]. (anICEmail flagged) ifTrue: [label := '[FLAGGED] ', label]. ^ label \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/loadOlderEmails.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/loadOlderEmails.st index 2245a8c9..abad232b 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/loadOlderEmails.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/loadOlderEmails.st @@ -1,4 +1,6 @@ get emails loadOlderEmails - [self loadOlderEmailsProcess ] forkAt: Processor userBackgroundPriority \ No newline at end of file + + self selectedFolder ifNotNil: [ + [self loadOlderEmailsProcess ] forkAt: Processor userBackgroundPriority] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/modifyFlag..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/modifyFlag..st index 32a01f00..16239c17 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/modifyFlag..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/modifyFlag..st @@ -1,8 +1,8 @@ flags modifyFlag: aFlag - - selectedEmail modifyFlag: aFlag. - selectedEmail retrieveFlags. + + self selectedEmail modifyFlag: aFlag. + self selectedEmail retrieveFlags. self changed: #emailsOfSelectedFolder; diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/moveEmail..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/moveEmail..st index 310cd879..3ea78beb 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/moveEmail..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/moveEmail..st @@ -1,7 +1,7 @@ email selection moveEmail: aFolder - selectedEmail moveEmail: aFolder. + self selectedEmail moveEmail: aFolder. self selectedEmail: nil. self changed: #emailsOfSelectedFolder; diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFetchedFolders..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFetchedFolders..st index 539c0ad1..386ef70d 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFetchedFolders..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFetchedFolders..st @@ -1,4 +1,4 @@ accessing -numberOfFetchedFolders: anObject +numberOfFetchedFolders: aNumber - numberOfFetchedFolders := anObject \ No newline at end of file + numberOfFetchedFolders := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFolders..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFolders..st index 479219b0..ffd082d2 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFolders..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/numberOfFolders..st @@ -1,4 +1,4 @@ accessing -numberOfFolders: anObject +numberOfFolders: aNumber - numberOfFolders := anObject \ No newline at end of file + numberOfFolders := aNumber \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/openEmail..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/openEmail..st index fedd744f..585d106d 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/openEmail..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/openEmail..st @@ -1,15 +1,11 @@ email selection openEmail: anICEmail - [anICEmail open. - anICEmail isFlaggable - ifTrue: [ - selectedEmail retrieveFlags. - self - changed: #emailsOfSelectedFolder; - changed: #childFolders; - changed: #emailAccounts]] + self selectedEmail retrieveFlags. + self + changed: #emailsOfSelectedFolder; + changed: #childFolders; + changed: #emailAccounts] on: Error - do: [:sig | self inform: 'Loading Body of the Mail failed. - This typically happens it the Mails was moved/deleted on another device. Use Update Button to update Mailbox Status.'] \ No newline at end of file + do: [:e | self inform: self class loadEmailBodyFailure] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/passwordPromtCallback..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/passwordPromtCallback..st new file mode 100644 index 00000000..22b78aa4 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/passwordPromtCallback..st @@ -0,0 +1,14 @@ +accountManagment +passwordPromtCallback: aDictionary + + | nextAccount | + + self initializedAccounts add: aDictionary. + + nextAccount := self uninitializedAccounts findFirst: [:account | + (account at: 'accountName') = (aDictionary at: 'accountName')]. + self uninitializedAccounts removeAt: nextAccount. + + (self uninitializedAccounts isEmpty) + ifTrue: [self accountsComplete] + ifFalse: [ICPasswordDialog openWith: (self uninitializedAccounts first) and: self] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/progressCallback.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/progressCallback.st index 286761ac..0480c81c 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/progressCallback.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/progressCallback.st @@ -1,8 +1,6 @@ get emails progressCallback - "every time this method is called, the number of headers to fetch will be reduced by one" - | result | result := (1 / (self numberOfFolders)) * (self numberOfFetchedFolders). diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/rootFolder..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/rootFolder..st index 39b879e0..b5caae36 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/rootFolder..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/rootFolder..st @@ -1,4 +1,4 @@ accessing -rootFolder: anObject +rootFolder: anICFolder - rootFolder := anObject \ No newline at end of file + rootFolder := anICFolder \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount..st deleted file mode 100644 index 63d976c8..00000000 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount..st +++ /dev/null @@ -1,8 +0,0 @@ -accessing -selectedAccount: anObject - - (anObject = self selectedAccount) - ifFalse: [ - selectedAccount := anObject. - self changeAccounts: anObject. - self changed: #selectedAccount] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount.st deleted file mode 100644 index a8431814..00000000 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedAccount.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -selectedAccount - - ^ selectedAccount \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEmail..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEmail..st index 76c3ba05..a87675b8 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEmail..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEmail..st @@ -1,9 +1,5 @@ accessing -selectedEmail: anObject +selectedEmail: anEmail - ((anObject == self selectedEmail) and: anObject isNil not) - ifTrue: [ - self openEmail: anObject]. - - selectedEmail := anObject. + selectedEmail := anEmail. self changed: #selectedEmail \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint..st new file mode 100644 index 00000000..d27fc372 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint..st @@ -0,0 +1,7 @@ +accessing +selectedEndpoint: anICEndpoint + + (anICEndpoint = self selectedEndpoint) + ifFalse: [ + selectedEndpoint := anICEndpoint. + self switchToNewEndpoint] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint.st new file mode 100644 index 00000000..a885db2a --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/selectedEndpoint.st @@ -0,0 +1,4 @@ +accessing +selectedEndpoint + + ^ selectedEndpoint \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/switchToNewEndpoint.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/switchToNewEndpoint.st new file mode 100644 index 00000000..875505a6 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/switchToNewEndpoint.st @@ -0,0 +1,12 @@ +accountManagment +switchToNewEndpoint + + + self selectedEndpoint ifNil: [^self]. + self folderWith: self selectedEndpoint. + + self rootFolder: self selectedEndpoint rootFolder. + self selectedFolder: nil. + + self triggerBasicChanges. + self changed: #selectedEndpoint \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/triggerBasicChanges.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/triggerBasicChanges.st new file mode 100644 index 00000000..7ba1a46a --- /dev/null +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/triggerBasicChanges.st @@ -0,0 +1,7 @@ +accountManagment +triggerBasicChanges + + self changed: #selectedFolder. + self changed: #rootFolder. + self changed: #childFolders. + self changed: #emailsOfSelectedFolder. \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts..st index c07ea622..6eaf2105 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts..st @@ -1,4 +1,4 @@ accessing -uninitializedAccounts: anObject +uninitializedAccounts: anOrderedCollection - uninitializedAccounts := anObject \ No newline at end of file + uninitializedAccounts := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts.st index b5e2252b..a594da17 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/uninitializedAccounts.st @@ -1,4 +1,4 @@ accessing uninitializedAccounts - ^ uninitializedAccounts \ No newline at end of file + ^ uninitializedAccounts ifNil: [uninitializedAccounts := OrderedCollection new] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/update.st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/update.st index ed1f8348..21947322 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/update.st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/update.st @@ -3,7 +3,8 @@ update self numberOfFetchedFolders: 0. self numberOfFolders: - (ICHelper getAllFolders: (self emailAccounts collect: [:each | each rootFolder])) size. + (self emailAccounts collect: [:each | each rootFolder recursiveChildFolders]) flatten size + + self emailAccounts size. 'Updating ' displaySequentialProgress: [self updateProcess]. self numberOfFetchedFolders: 0 \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/userListMenu..st b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/userListMenu..st index aa48674a..278a931f 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/userListMenu..st +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/instance/userListMenu..st @@ -2,7 +2,7 @@ folder selection userListMenu: aMenu aMenu - add: 'Edit' action: [self editAccountButton: self selectedAccount]; - add: 'Delete' action: [self deleteAccountButton: self selectedAccount]. + add: 'Edit' action: [self editAccountButton: self selectedEndpoint]; + add: 'Delete' action: [self deleteAccountButton: self selectedEndpoint]. ^ aMenu \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/methodProperties.json b/packages/IMAPClient-UI.package/ICFolderDialog.class/methodProperties.json index b88f1439..b7a68e64 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/methodProperties.json +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/methodProperties.json @@ -1,65 +1,79 @@ { "class" : { + "addUserIcon" : "fr 7/7/2019 10:43", + "install" : "pm 5/24/2019 14:28", + "loadEmailBodyFailure" : "tg 7/26/2019 16:19", "open" : "DH 7/19/2018 18:21" }, "instance" : { - "accountsComplete" : "C.G. 7/25/2018 14:15", - "addAccount:" : "C.G. 6/26/2018 11:04", - "addAccountButton" : "C.G. 6/26/2018 11:04", - "addPasswordToCollection:" : "C.G. 6/26/2018 11:05", - "buildWith:" : "C.G. 7/25/2018 14:15", - "changeAccounts:" : "C.G. 7/25/2018 14:16", + "accountsComplete" : "tg 7/25/2019 11:52", + "addAccount:" : "tg 7/25/2019 11:47", + "buildAddAccountButton:" : "tg 7/26/2019 22:07", + "buildEmailButton:" : "ok 6/20/2019 12:18", + "buildEmailList:" : "pm 6/26/2019 14:31", + "buildEmailSearch:" : "pm 6/26/2019 14:43", + "buildEmailTopPanel:" : "tg 7/26/2019 16:22", + "buildFolderTree:" : "ok 6/20/2019 12:19", + "buildLoadOlderEmailsButton:" : "pm 6/26/2019 14:43", + "buildNavigationPanel:" : "ok 6/20/2019 12:24", + "buildUserList:" : "tg 7/25/2019 20:19", + "buildWith:" : "pm 6/26/2019 14:43", "changeFilter:" : "lvm 7/3/2018 15:50", - "childFolders" : "C.G. 7/25/2018 14:16", - "closeConnection" : "C.G. 6/21/2018 00:19", + "childFolders" : "tg 7/26/2019 13:30", + "closeConnection" : "tg 7/26/2019 13:30", + "createAccount" : "fr 7/7/2019 09:59", "currentRemoteVatId" : "dl 6/23/2017 12:30", "defaultBackgroundColor" : "C.G. 7/25/2018 14:16", - "deleteAccountButton:" : "DH 6/19/2018 11:59", - "deleteEmail" : "C.G. 7/25/2018 14:16", + "deleteAccountButton:" : "tg 7/25/2019 20:28", + "deleteEmail" : "ok 7/26/2019 15:22", "dialogTitle" : "ms 6/26/2016 13:50", - "editAccount:with:" : "C.G. 7/25/2018 14:16", - "editAccountButton:" : "C.G. 7/25/2018 14:16", + "editAccount:with:" : "tg 7/26/2019 15:49", + "editAccountButton:" : "tg 7/26/2019 16:22", "emailAccounts" : "C.G. 7/25/2018 14:16", "emailAccounts:" : "C.G. 7/25/2018 14:16", - "emailListMenu:" : "DH 7/25/2018 00:04", + "emailListKeyPress:" : "tg 7/26/2019 15:53", + "emailListKeyPressMapping" : "pm 5/27/2019 14:00", + "emailListMenu:" : "tg 7/19/2019 09:30", "emailSearchHelp" : "lvm 7/3/2018 16:09", - "emailsOfSelectedFolder" : "DH 7/9/2018 21:22", + "emailsOfSelectedFolder" : "pm 6/26/2019 14:32", "emphasizeUnseenAccounts:" : "lvm 7/4/2018 11:18", "emphasizeUnseenFolders:" : "lvm 7/4/2018 11:18", "emphasizeUnseenMessages:" : "C.G. 6/21/2018 00:20", "filterString" : "lvm 6/26/2018 14:05", - "filterString:" : "7/9/2018 21:18:29", - "folderListMenu" : "C.G. 7/12/2018 08:14", - "folderNameOf:" : "C.G. 7/25/2018 14:18", - "getFolderWith:" : "DH 6/21/2018 20:22", - "initialize" : "DH 6/23/2018 16:23", + "filterString:" : "fr 6/3/2019 15:50", + "folderListMenu" : "tg 7/25/2019 11:35", + "folderNameOf:" : "tg 7/26/2019 22:03", + "folderWith:" : "pm 6/3/2019 18:47", + "initialize" : "tg 7/8/2019 14:56", "initializedAccounts" : "C.G. 7/25/2018 14:18", - "initializedAccounts:" : "C.G. 7/25/2018 14:18", - "keyEvent:" : "C.G. 7/25/2018 14:18", - "labelForAccount:" : "C.G. 7/25/2018 14:19", + "initializedAccounts:" : "pm 6/9/2019 17:02", + "labelForAccount:" : "tg 7/10/2019 18:39", "labelForDeletionAction:" : "C.G. 7/25/2018 14:19", - "labelForFolder:" : "C.G. 7/25/2018 14:19", - "labelForMail:" : "C.G. 6/26/2018 11:06", - "loadOlderEmails" : "C.G. 7/25/2018 14:19", + "labelForFolder:" : "tg 7/19/2019 09:19", + "labelForMail:" : "pm 6/26/2019 14:34", + "loadOlderEmails" : "tg 7/26/2019 14:49", "loadOlderEmailsProcess" : "DH 7/22/2018 22:02", - "modifyFlag:" : "DH 7/19/2018 19:52", - "moveEmail:" : "lvm 7/8/2018 11:46", + "modifyFlag:" : "tg 7/26/2019 13:52", + "moveEmail:" : "tg 7/26/2019 21:41", "numberOfFetchedFolders" : "C.G. 7/12/2018 08:14", - "numberOfFetchedFolders:" : "C.G. 7/12/2018 08:14", + "numberOfFetchedFolders:" : "pm 6/9/2019 17:03", "numberOfFolders" : "C.G. 7/12/2018 08:15", - "numberOfFolders:" : "C.G. 7/12/2018 08:15", - "openEmail:" : "C.G. 7/25/2018 14:20", - "progressCallback" : "C.G. 7/12/2018 08:15", + "numberOfFolders:" : "pm 6/9/2019 17:03", + "openEmail:" : "tg 7/26/2019 16:19", + "passwordPromtCallback:" : "tg 7/26/2019 21:41", + "progressCallback" : "tg 7/26/2019 16:21", "rootFolder" : "ms 6/26/2016 14:05", - "rootFolder:" : "C.G. 7/12/2018 08:15", - "selectedAccount" : "C.G. 7/25/2018 14:20", - "selectedAccount:" : "C.G. 7/25/2018 14:20", + "rootFolder:" : "pm 6/9/2019 17:03", "selectedEmail" : "ms 6/28/2016 11:17", - "selectedEmail:" : "C.G. 7/25/2018 14:20", + "selectedEmail:" : "pm 6/14/2019 14:45", + "selectedEndpoint" : "tg 7/25/2019 20:19", + "selectedEndpoint:" : "tg 7/25/2019 20:25", "selectedFolder" : "ms 6/28/2016 11:44", "selectedFolder:" : "DH 7/24/2018 23:59", "subFoldersOf:" : "ms 6/26/2016 14:10", - "uninitializedAccounts" : "C.G. 7/25/2018 14:21", + "switchToNewEndpoint" : "tg 7/26/2019 15:49", + "triggerBasicChanges" : "tg 7/26/2019 15:49", + "uninitializedAccounts" : "pm 6/9/2019 13:16", "uninitializedAccounts:" : "C.G. 7/25/2018 14:21", - "update" : "C.G. 7/12/2018 08:16", + "update" : "tg 7/25/2019 11:38", "updateProcess" : "C.G. 7/12/2018 08:16", - "userListMenu:" : "C.G. 6/21/2018 10:56" } } + "userListMenu:" : "tg 7/25/2019 20:27" } } diff --git a/packages/IMAPClient-UI.package/ICFolderDialog.class/properties.json b/packages/IMAPClient-UI.package/ICFolderDialog.class/properties.json index ecb491ea..75d0d4f3 100644 --- a/packages/IMAPClient-UI.package/ICFolderDialog.class/properties.json +++ b/packages/IMAPClient-UI.package/ICFolderDialog.class/properties.json @@ -8,7 +8,7 @@ "instvars" : [ "rootFolder", "selectedEmail", - "selectedAccount", + "selectedEndpoint", "selectedFolder", "emailAccounts", "uninitializedAccounts", diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/README.md b/packages/IMAPClient-UI.package/ICLoginDialog.class/README.md index ed856d02..8d000bb1 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/README.md +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/README.md @@ -1,4 +1,4 @@ -An ICLoginDialog is a toolbuilder-based UI for logging into an ICEndPoint and subsequently opening an ICFolderDialog. +An ICLoginDialog is a toolbuilder-based UI for adding new account configuration to the client which then can be authorized by the ICPasswordDialog. Instance Variables ssl: A boolean flag indicating whether SSL is enabled. \ No newline at end of file diff --git a/packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultPort.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/defaultPort.st similarity index 79% rename from packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultPort.st rename to packages/IMAPClient-UI.package/ICLoginDialog.class/class/defaultPort.st index 602a5a35..39383260 100644 --- a/packages/IMAPClient-Core.package/ICServerInfo.class/class/defaultPort.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/defaultPort.st @@ -1,4 +1,4 @@ constants defaultPort - ^ -1 \ No newline at end of file + ^ 993 \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/failureLoginMessage.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/failureLoginMessage.st deleted file mode 100644 index 27135c7e..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/failureLoginMessage.st +++ /dev/null @@ -1,4 +0,0 @@ -constants -failureLoginMessage - - ^ 'Login failed, please try again.' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/getConfigNameFile.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/getConfigNameFile.st deleted file mode 100644 index 365453b0..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/getConfigNameFile.st +++ /dev/null @@ -1,4 +0,0 @@ -constants -getConfigNameFile - - ^ 'config.txt' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/inputParameterOrder.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/inputParameterOrder.st new file mode 100644 index 00000000..edf10301 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/inputParameterOrder.st @@ -0,0 +1,4 @@ +constants +inputParameterOrder + + ^ {'accountName'. 'address'. 'port'. 'username'. 'password'. 'ssl'} \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/open.with..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/open.with..st index 7d4d18f3..55e2de97 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/open.with..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/open.with..st @@ -6,7 +6,7 @@ open: aFolderDialogInstance with: anEndpoint instance := self new. instance folderDialogInstance: aFolderDialogInstance. - instance loadData: anEndpoint asDictionary. + instance loadData: anEndpoint asAccountInfoDictionary. instance updateMode: true. instance endpoint: anEndpoint. diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/successLoginMessage.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/class/successLoginMessage.st deleted file mode 100644 index 77821ef4..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/class/successLoginMessage.st +++ /dev/null @@ -1,4 +0,0 @@ -constants -successLoginMessage - - ^ 'Successfully logged in!' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountName..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountName..st index 23831192..1d5ff602 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountName..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountName..st @@ -1,8 +1,8 @@ accessing -accountName: anObject +accountName: aText - (self checkIfLastCharacterIsTab: anObject string) - ifFalse: [accountName := anObject string] + (self lastCharacterIsTab: aText string) + ifFalse: [accountName := aText string] ifTrue: [self changeInputField: 1]. self changed: #accountName \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountnameUnused..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountnameUnused..st new file mode 100644 index 00000000..82b020bc --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/accountnameUnused..st @@ -0,0 +1,8 @@ +helper +accountnameUnused: anAccountInfo + + ICEndPoint connectionConfigurations + detect: [:credDict | (anAccountInfo accountName) = (credDict at: 'accountName')] + ifFound: [:credDict | self displayAccountnameExistsErrorMessage. ^false] + ifNone: [^true]. + ^ false \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/allFieldsFilled..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/allFieldsFilled..st new file mode 100644 index 00000000..4fc39339 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/allFieldsFilled..st @@ -0,0 +1,9 @@ +helper +allFieldsFilled: anAccountInfo + + | possiblyEmptyParameters | + + possiblyEmptyParameters := self emptyParametersIn: anAccountInfo asDictionary. + self displayEmptyFieldErrorMessageIfNecessary: possiblyEmptyParameters. + + ^ possiblyEmptyParameters isEmpty \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildLoginButton..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildLoginButton..st new file mode 100644 index 00000000..fde2c3da --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildLoginButton..st @@ -0,0 +1,9 @@ +toolbuilder +buildLoginButton: builder + + ^ builder pluggableButtonSpec new + model: self; + label: #buttonLabel; + action: #login; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 6) + extent: self guiElementWidth @ (self guiElementHeight * 1.0)) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildNameInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildNameInputField..st new file mode 100644 index 00000000..9f1d5d49 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildNameInputField..st @@ -0,0 +1,12 @@ +toolbuilder +buildNameInputField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #accountName; + setText: #accountName:; + editText: #accountName:; + help: #nameHelpText; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 0) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildPasswordInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildPasswordInputField..st new file mode 100644 index 00000000..4c9ef8a7 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildPasswordInputField..st @@ -0,0 +1,13 @@ +toolbuilder +buildPasswordInputField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #password; + setText: #password:; + editText: #password:; + help: #passwordHelpText; + font: (StrikeFont passwordFontSize: 12); + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 4) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerAdressInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerAdressInputField..st new file mode 100644 index 00000000..65ab6d6c --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerAdressInputField..st @@ -0,0 +1,12 @@ +toolbuilder +buildServerAdressInputField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #serverAddress; + setText: #serverAddress:; + editText: #serverAddress:; + help: #serverAdressHelpText; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 1) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerPortInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerPortInputField..st new file mode 100644 index 00000000..44ee3546 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildServerPortInputField..st @@ -0,0 +1,12 @@ +toolbuilder +buildServerPortInputField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #serverPort; + setText: #serverPort:; + editText: #serverPort:; + help: #serverPortHelpText; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 2) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildSslCheckBox..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildSslCheckBox..st new file mode 100644 index 00000000..733b6dda --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildSslCheckBox..st @@ -0,0 +1,10 @@ +toolbuilder +buildSslCheckBox: builder + + ^ builder pluggableCheckBoxSpec new + model: self; + label: #sslCheckBoxLabel; + color: #checkBoxColor; + state: #ssl; + action: #toggleSSL; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 5) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildUserInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildUserInputField..st new file mode 100644 index 00000000..70e9799c --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildUserInputField..st @@ -0,0 +1,12 @@ +toolbuilder +buildUserInputField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #username; + setText: #username:; + editText: #username:; + help: #usernameHelpText; + frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 3) extent: self guiElementWidth @ self guiElementHeight) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildWith..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildWith..st index b5cdf43b..e3fea289 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildWith..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buildWith..st @@ -1,120 +1,34 @@ toolbuilder buildWith: builder - | windowSpec nameInputFieldSpec serverAdressInputFieldSpec serverPortInputFieldSpec userInputFieldSpec passwordInputFieldSpec sslCheckBoxSpec loginButtonSpec window | + | window | - windowSpec := builder pluggableWindowSpec new. - windowSpec - model: self; - label: self dialogTitle; - extent: 300 @ 200; - children: OrderedCollection new. - - nameInputFieldSpec := builder pluggableInputFieldSpec new. - nameInputFieldSpec - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #accountName; - setText: #accountName:; - editText: #accountName:; - help: #nameHelpText; - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 0) - extent: self guiElementWidth @ self guiElementHeight). - - serverAdressInputFieldSpec := builder pluggableInputFieldSpec new. - serverAdressInputFieldSpec - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #serverAddress; - setText: #serverAddress:; - editText: #serverAddress:; - help: #serverAdressHelpText; - frame: (self guiElementXOffset @ (self guiElementYOffsetOf: 1) extent: self guiElementWidth @ self guiElementHeight). - - serverPortInputFieldSpec := builder pluggableInputFieldSpec new. - serverPortInputFieldSpec - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #serverPort; - setText: #serverPort:; - editText: #serverPort:; - help: #serverPortHelpText; - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 2) - extent: self guiElementWidth @ self guiElementHeight). - - userInputFieldSpec := builder pluggableInputFieldSpec new. - userInputFieldSpec - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #username; - setText: #username:; - editText: #username:; - help: #usernameHelpText; - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 3) - extent: self guiElementWidth @ self guiElementHeight). - - passwordInputFieldSpec := builder pluggableInputFieldSpec new. - passwordInputFieldSpec - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #password; - setText: #password:; - editText: #password:; - help: #passwordHelpText; - font: (StrikeFont passwordFontSize: 12); - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 4) - extent: self guiElementWidth @ self guiElementHeight). - - sslCheckBoxSpec := builder pluggableCheckBoxSpec new. - sslCheckBoxSpec - model: self; - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 5) - extent: self guiElementWidth @ self guiElementHeight); - label: #sslCheckBoxLabel; - color: #checkBoxColor; - state: #ssl; - action: #toggleSSL. - - - loginButtonSpec := builder pluggableButtonSpec new. - loginButtonSpec - model: self; - frame: - (self guiElementXOffset @ (self guiElementYOffsetOf: 6) - extent: self guiElementWidth @ (self guiElementHeight * 1.0)); - label: #getButtonLabel; - action: #login. - - windowSpec children - addAll: {loginButtonSpec . serverAdressInputFieldSpec . serverPortInputFieldSpec . userInputFieldSpec . - nameInputFieldSpec . passwordInputFieldSpec . sslCheckBoxSpec}. - - window := builder build: windowSpec. - - window on: #keyStroke send: #keyEvent: to: self. - self loginMorph: window. self inputCollection: OrderedCollection new. - - "add listener to text fields - and hack to make the checkbox background transparent - can be removed once PluggableCheckBoxMorph starts using its color selector instead of default mint green - (bug in squeak)" - - window submorphsDo: [:m | + + window := (builder build: (builder pluggableWindowSpec new + model: self; + label: self dialogTitle; + extent: 300 @ 200; + children: { + self buildLoginButton: builder. + self buildServerAdressInputField: builder. + self buildServerPortInputField: builder. + self buildUserInputField: builder. + self buildNameInputField: builder. + self buildPasswordInputField: builder. + self buildSslCheckBox: builder})) + on: #keyStroke send: #keyEvent: to: self; + "add listener to text fields + and hack to make the checkbox background transparent + can be removed once PluggableCheckBoxMorph starts using its color selector instead of default mint green + (bug in squeak)" + submorphsDo: [:m | (m class == PluggableTextMorphPlus) ifTrue: [self inputCollection add: m. m textMorph on: #keyDown send: #keyEvent: to: self]. (m class == PluggableCheckBoxMorph) ifTrue: [m color: Color transparent]]. + self loginMorph: window. + ^ window \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/getButtonLabel.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buttonLabel.st similarity index 82% rename from packages/IMAPClient-UI.package/ICLoginDialog.class/instance/getButtonLabel.st rename to packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buttonLabel.st index 76c7e03c..6358aaab 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/getButtonLabel.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/buttonLabel.st @@ -1,5 +1,5 @@ accessing -getButtonLabel +buttonLabel (self updateMode) ifTrue: [^ 'Update'] diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/changeInputField..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/changeInputField..st index e5e63c55..e9626a25 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/changeInputField..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/changeInputField..st @@ -13,8 +13,7 @@ changeInputField: currentIndex "get text of next input field - to select it" text := self perform: (correctSubmorph getTextSelector). text ifNotNil:[ - text size > 0 - ifTrue: [ + text ifNotEmpty: [ "select text of morph" correctSubmorph textMorph editor selectInterval: (1 to: (text size))]]. diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkForEmptyParameter..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkForEmptyParameter..st deleted file mode 100644 index c5e230f1..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkForEmptyParameter..st +++ /dev/null @@ -1,12 +0,0 @@ -as yet unclassified -checkForEmptyParameter: aCollection - - | possiblyEmptyParameters | - - possiblyEmptyParameters := self emptyParameterFrom: aCollection. - (possiblyEmptyParameters isEmpty) - ifFalse: [ - self displayEmptyFieldErrorMessage: possiblyEmptyParameters. - ^ false]. - - ^ true \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkIfLastCharacterIsTab..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkIfLastCharacterIsTab..st deleted file mode 100644 index 426173b1..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/checkIfLastCharacterIsTab..st +++ /dev/null @@ -1,6 +0,0 @@ -helper -checkIfLastCharacterIsTab: aString - - aString isEmpty ifTrue: [^ false]. - - ^ (aString last asciiValue == 9) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/constructEmptyFieldsErrorMessage..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/constructEmptyFieldsErrorMessage..st new file mode 100644 index 00000000..625b1ef8 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/constructEmptyFieldsErrorMessage..st @@ -0,0 +1,8 @@ +toasts +constructEmptyFieldsErrorMessage: aCollection + + aCollection sort: [:first :second | + (self class inputParameterOrder indexOf: first) < + (self class inputParameterOrder indexOf: second)]. + + ^ 'Please put in ', (aCollection fold: [:a :b | a, ', ', b]) , ' data' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/createAccountInfo.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/createAccountInfo.st new file mode 100644 index 00000000..f9dd3c18 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/createAccountInfo.st @@ -0,0 +1,10 @@ +helper +createAccountInfo + + ^ ICAccountInfo new + accountName: self accountName asString; + host: self serverAddress asString; + port: self serverPort asNumber; + username: self username asString; + password: self password asString; + ssl: self ssl \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayAccountnameExistsErrorMessage.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayAccountnameExistsErrorMessage.st new file mode 100644 index 00000000..df9a2488 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayAccountnameExistsErrorMessage.st @@ -0,0 +1,4 @@ +toasts +displayAccountnameExistsErrorMessage + + UserDialogBoxMorph inform: 'This account name already exists.' title: 'Note' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessage..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessage..st deleted file mode 100644 index d9345fef..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessage..st +++ /dev/null @@ -1,14 +0,0 @@ -as yet unclassified -displayEmptyFieldErrorMessage: aCollection - - | errorMessage | - - errorMessage := 'Please put in '. - - (ICHelper makeParameterCollection: aCollection) do: [:parameter | - errorMessage := errorMessage, parameter asString. - (parameter ~= (ICHelper makeParameterCollection: aCollection) last) - ifTrue: [errorMessage := errorMessage, ', ']]. - - errorMessage := errorMessage, ' data'. - UserDialogBoxMorph inform: errorMessage title: '' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessageIfNecessary..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessageIfNecessary..st new file mode 100644 index 00000000..521899a2 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/displayEmptyFieldErrorMessageIfNecessary..st @@ -0,0 +1,7 @@ +toasts +displayEmptyFieldErrorMessageIfNecessary: aCollection + + (aCollection isEmpty) + ifFalse: [ + UserDialogBoxMorph inform: (self constructEmptyFieldsErrorMessage: aCollection) title: 'Note' + ] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParameterFrom..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParameterFrom..st deleted file mode 100644 index be272f1b..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParameterFrom..st +++ /dev/null @@ -1,12 +0,0 @@ -as yet unclassified -emptyParameterFrom: aCollection - - | emptyParameters | - - emptyParameters := OrderedCollection new. - - aCollection keysAndValuesDo: [:key :value | - (value = nil asString) - ifTrue: [emptyParameters add: key]]. - - ^ emptyParameters \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParametersIn..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParametersIn..st new file mode 100644 index 00000000..264da637 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/emptyParametersIn..st @@ -0,0 +1,4 @@ +helper +emptyParametersIn: aDictionary + + ^ (aDictionary select: [ :value | (value asString isEmpty) | (value = nil asString) ]) keys \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/endpoint..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/endpoint..st index b41cab06..9da1aa2d 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/endpoint..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/endpoint..st @@ -1,4 +1,4 @@ accessing -endpoint: anObject +endpoint: anICEndPoint - endpoint := anObject \ No newline at end of file + endpoint := anICEndPoint \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/folderDialogInstance..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/folderDialogInstance..st index 60e7bc32..ac607751 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/folderDialogInstance..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/folderDialogInstance..st @@ -1,4 +1,4 @@ accessing -folderDialogInstance: anObject +folderDialogInstance: anICFolderDialog - folderDialogInstance := anObject \ No newline at end of file + folderDialogInstance := anICFolderDialog \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/initialize.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/initialize.st deleted file mode 100644 index 056db793..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/initialize.st +++ /dev/null @@ -1,12 +0,0 @@ -initialization -initialize - - super initialize. - self ssl: false. - self updateMode: false. - self symbolArray: OrderedCollection new. - self symbolArray add: #name. - self symbolArray add: #serverAddress. - self symbolArray add: #serverPort. - self symbolArray add: #username. - self symbolArray add: #password \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/inputCollection..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/inputCollection..st index c821494b..6d9daada 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/inputCollection..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/inputCollection..st @@ -1,4 +1,4 @@ accessing -inputCollection: anObject +inputCollection: anOrderedCollection - inputCollection := anObject \ No newline at end of file + inputCollection := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/insertDefaults.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/insertDefaults.st new file mode 100644 index 00000000..7e1957e6 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/insertDefaults.st @@ -0,0 +1,5 @@ +login +insertDefaults + + ((self serverPort isNil) or: [(self serverPort asString isEmpty)]) + ifTrue: [self serverPort: self class defaultPort asString asText]. \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/keyEvent..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/keyEvent..st index 043e5012..157d2feb 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/keyEvent..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/keyEvent..st @@ -1,7 +1,5 @@ helper keyEvent: aKey - - " keyEvent listener attached to morph and input fields" | shouldLogin | diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/lastCharacterIsTab..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/lastCharacterIsTab..st new file mode 100644 index 00000000..e6f94ee2 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/lastCharacterIsTab..st @@ -0,0 +1,4 @@ +helper +lastCharacterIsTab: aString + + ^ aString notEmpty and: [aString last asciiValue == 9] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loadData..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loadData..st index 220781f7..e2fec747 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loadData..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loadData..st @@ -1,7 +1,7 @@ accessing loadData: dataDictionary - self accountName: (dataDictionary at: 'name:'). + self accountName: (dataDictionary at: 'accountName'). self serverAddress: (dataDictionary at: 'address'). self serverPort: (dataDictionary at: 'port') asString. self username: (dataDictionary at: 'username'). diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/login.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/login.st index ed3b8c78..3463bf9a 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/login.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/login.st @@ -1,17 +1,18 @@ login login - - "create a dictionary with data and return it" - | dataDictionary | + | accountInfo | - dataDictionary := self makeDataDictionary. - (self checkForEmptyParameter: dataDictionary) + self insertDefaults. + accountInfo := self createAccountInfo. + (self allFieldsFilled: accountInfo) + ifFalse: [^ self]. + (self accountnameUnused: accountInfo) ifFalse: [^ self]. - ((ICEndPoint new) testAccountWith: dataDictionary) + ((ICEndPoint new) testAccountWith: accountInfo) ifTrue: [ self loginMorph abandon. (self updateMode) - ifFalse: [folderDialogInstance addAccount: dataDictionary] - ifTrue: [folderDialogInstance editAccount: dataDictionary with: (self endpoint)]] \ No newline at end of file + ifFalse: [self folderDialogInstance addAccount: accountInfo] + ifTrue: [self folderDialogInstance editAccount: accountInfo with: (self endpoint)]] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loginMorph..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loginMorph..st index 90dcf65c..39993a7d 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loginMorph..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/loginMorph..st @@ -1,4 +1,4 @@ accessing -loginMorph: anObject +loginMorph: aMorph - loginMorph := anObject \ No newline at end of file + loginMorph := aMorph \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/makeDataDictionary.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/makeDataDictionary.st deleted file mode 100644 index cc02f7bb..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/makeDataDictionary.st +++ /dev/null @@ -1,15 +0,0 @@ -as yet unclassified -makeDataDictionary - - | dataDictionary | - - dataDictionary := Dictionary new. - - dataDictionary at: 'name' put: self accountName asString. - dataDictionary at: 'address' put: self serverAddress asString. - dataDictionary at: 'port' put: self serverPort asString. - dataDictionary at: 'username' put: self username asString. - dataDictionary at: 'password' put: self password asString. - dataDictionary at: 'ssl' put: self ssl. - - ^ dataDictionary \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/parseStringToBool..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/parseStringToBool..st deleted file mode 100644 index 8f757675..00000000 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/parseStringToBool..st +++ /dev/null @@ -1,6 +0,0 @@ -helper -parseStringToBool: aString - - aString = 'true' - ifTrue: [^ true] - ifFalse: [ ^ false] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/password..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/password..st index 028eecef..1bbb4954 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/password..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/password..st @@ -1,8 +1,8 @@ accessing -password: anObject +password: aText - (self checkIfLastCharacterIsTab: anObject string) - ifFalse: [password := anObject] + (self lastCharacterIsTab: aText string) + ifFalse: [password := aText] ifTrue: [self changeInputField: 5]. self changed: #password \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverAddress..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverAddress..st index e2db0885..1c7c59fa 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverAddress..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverAddress..st @@ -1,8 +1,8 @@ accessing -serverAddress: anObject +serverAddress: aText - (self checkIfLastCharacterIsTab: anObject string) - ifFalse: [serverAddress := anObject withBlanksTrimmed] + (self lastCharacterIsTab: aText string) + ifFalse: [serverAddress := aText withBlanksTrimmed] ifTrue: [self changeInputField: 2]. self changed: #serverAddress \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPort..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPort..st index 5d2bd874..83c241c9 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPort..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPort..st @@ -1,11 +1,8 @@ accessing -serverPort: anObject +serverPort: aText - (anObject isString) - ifTrue: [Transcript show: anObject]. - - (self checkIfLastCharacterIsTab: anObject string) - ifFalse: [serverPort := anObject withBlanksTrimmed] + (self lastCharacterIsTab: aText string) + ifFalse: [serverPort := aText withBlanksTrimmed] ifTrue: [self changeInputField: 3]. self changed: #serverPort \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPortHelpText.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPortHelpText.st index bebc2732..a684f6e5 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPortHelpText.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/serverPortHelpText.st @@ -1,4 +1,4 @@ user interface serverPortHelpText - ^ 'server port' \ No newline at end of file + ^ 'server port (default: 993)' \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl..st index c3eefb0d..cc34cd4d 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl..st @@ -1,5 +1,5 @@ accessing -ssl: anObject +ssl: aBool - ssl := anObject. + ssl := aBool. self changed: #ssl \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl.st index 39da286d..604d8b48 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/ssl.st @@ -1,3 +1,4 @@ accessing ssl - ^ ssl \ No newline at end of file + + ^ ssl ifNil: [ssl := true] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray..st index 41e58285..57d84306 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray..st @@ -1,4 +1,4 @@ accessing -symbolArray: anObject +symbolArray: anOrderedCollection - symbolArray := anObject \ No newline at end of file + symbolArray := anOrderedCollection \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray.st index 115dfaf0..72a974e0 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/symbolArray.st @@ -1,4 +1,9 @@ accessing symbolArray - - ^ symbolArray \ No newline at end of file + + ^ symbolArray ifNil: [symbolArray := { + #accountName. + #serverAddress. + #serverPort. + #username. + #password} as: OrderedCollection] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode..st index 825ee0c7..7d136c2a 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode..st @@ -1,4 +1,4 @@ accessing -updateMode: anObject +updateMode: aBool - updateMode := anObject \ No newline at end of file + updateMode := aBool \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode.st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode.st index cff8e1e8..3cea66ae 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode.st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/updateMode.st @@ -1,4 +1,4 @@ accessing updateMode - ^ updateMode \ No newline at end of file + ^ updateMode ifNil: [updateMode := false] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/username..st b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/username..st index 90fc3d5f..ce03a9df 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/username..st +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/instance/username..st @@ -1,8 +1,8 @@ accessing -username: anObject +username: aText - (self checkIfLastCharacterIsTab: anObject string) - ifFalse: [username := anObject withBlanksTrimmed] + (self lastCharacterIsTab: aText string) + ifFalse: [username := aText withBlanksTrimmed] ifTrue: [self changeInputField: 4]. self changed: #username \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/methodProperties.json b/packages/IMAPClient-UI.package/ICLoginDialog.class/methodProperties.json index 8cb2f2db..057a18cc 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/methodProperties.json +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/methodProperties.json @@ -1,61 +1,69 @@ { "class" : { - "failureLoginMessage" : "jwe 6/14/2016 23:41", - "getConfigNameFile" : "C.G. 6/21/2018 00:34", + "defaultPort" : "ok 7/9/2019 19:05", + "inputParameterOrder" : "tg 7/25/2019 10:48", "open:" : "C.G. 6/21/2018 10:56", - "open:with:" : "C.G. 7/25/2018 14:26", - "successLoginMessage" : "jwe 6/14/2016 23:40" }, + "open:with:" : "tg 7/15/2019 12:19" }, "instance" : { "accountName" : "C.G. 7/25/2018 14:21", - "accountName:" : "C.G. 7/25/2018 14:21", - "buildWith:" : "C.G. 7/25/2018 14:22", - "changeInputField:" : "DH 7/25/2018 00:10", + "accountName:" : "tg 7/26/2019 15:55", + "accountnameUnused:" : "tg 7/26/2019 15:54", + "allFieldsFilled:" : "tg 7/26/2019 15:55", + "buildLoginButton:" : "tg 7/26/2019 15:43", + "buildNameInputField:" : "pm 6/25/2019 16:42", + "buildPasswordInputField:" : "pm 6/25/2019 16:44", + "buildServerAdressInputField:" : "pm 6/25/2019 16:43", + "buildServerPortInputField:" : "pm 6/25/2019 16:43", + "buildSslCheckBox:" : "pm 6/25/2019 16:45", + "buildUserInputField:" : "pm 6/25/2019 16:43", + "buildWith:" : "pm 6/25/2019 16:51", + "buttonLabel" : "pm 6/3/2019 18:47", + "changeInputField:" : "tg 7/26/2019 16:45", "checkBoxColor" : "ms 7/13/2016 17:34", - "checkForEmptyParameter:" : "C.G. 7/25/2018 12:20", - "checkIfLastCharacterIsTab:" : "C.G. 7/25/2018 14:22", + "constructEmptyFieldsErrorMessage:" : "tg 7/25/2019 12:59", + "createAccountInfo" : "mt 7/26/2019 14:24", "defaultBackgroundColor" : "C.G. 6/21/2018 00:28", "dialogTitle" : "ms 6/14/2016 09:53", - "displayEmptyFieldErrorMessage:" : "C.G. 7/25/2018 12:20", - "emptyParameterFrom:" : "C.G. 7/25/2018 12:18", + "displayAccountnameExistsErrorMessage" : "ok 6/25/2019 00:26", + "displayEmptyFieldErrorMessageIfNecessary:" : "ok 6/25/2019 00:26", + "emptyParametersIn:" : "ok 6/6/2019 20:05", "endpoint" : "C.G. 7/25/2018 14:22", - "endpoint:" : "C.G. 7/25/2018 14:23", + "endpoint:" : "pm 6/9/2019 17:13", "folderDialogInstance" : "C.G. 7/25/2018 14:23", - "folderDialogInstance:" : "C.G. 7/25/2018 14:23", - "getButtonLabel" : "C.G. 7/25/2018 14:23", + "folderDialogInstance:" : "pm 6/9/2019 17:13", "guiElementHeight" : "ms 6/3/2016 19:32", "guiElementWidth" : "ms 6/3/2016 19:36", "guiElementXOffset" : "ms 6/3/2016 19:36", "guiElementYOffset" : "ms 7/12/2016 10:45", "guiElementYOffsetOf:" : "C.G. 7/25/2018 14:23", "guiElementYSpacing" : "ms 6/14/2016 10:05", - "initialize" : "C.G. 7/25/2018 14:23", "inputCollection" : "C.G. 7/25/2018 14:23", - "inputCollection:" : "C.G. 7/25/2018 14:23", - "keyEvent:" : "DH 7/25/2018 00:08", - "loadData:" : "C.G. 6/21/2018 10:58", - "login" : "C.G. 7/25/2018 12:23", + "inputCollection:" : "pm 6/9/2019 17:12", + "insertDefaults" : "tg 7/26/2019 22:07", + "keyEvent:" : "tg 7/26/2019 16:21", + "lastCharacterIsTab:" : "tg 7/26/2019 21:47", + "loadData:" : "tg 7/19/2019 09:56", + "login" : "tg 7/26/2019 21:41", "loginMorph" : "C.G. 7/25/2018 14:24", - "loginMorph:" : "C.G. 7/25/2018 14:24", - "makeDataDictionary" : "C.G. 7/25/2018 12:16", + "loginMorph:" : "pm 6/9/2019 17:12", "nameHelpText" : "DH 6/12/2018 22:36", - "parseStringToBool:" : "C.G. 6/21/2018 00:32", "password" : "C.G. 7/25/2018 14:24", - "password:" : "DH 6/12/2018 22:32", + "password:" : "tg 7/26/2019 15:55", "passwordHelpText" : "ms 6/14/2016 09:21", "serverAddress" : "ms 6/14/2016 09:21", - "serverAddress:" : "C.G. 7/25/2018 14:24", + "serverAddress:" : "tg 7/26/2019 15:55", "serverAdressHelpText" : "ms 6/14/2016 09:21", "serverPort" : "C.G. 7/25/2018 14:24", - "serverPort:" : "C.G. 6/21/2018 00:32", - "serverPortHelpText" : "ms 6/14/2016 09:21", - "ssl" : "C.G. 6/21/2018 00:32", + "serverPort:" : "tg 7/26/2019 16:06", + "serverPortHelpText" : "ok 7/9/2019 18:59", + "ssl" : "ok 7/9/2019 18:58", "ssl:" : "ms 7/13/2016 17:25", "sslCheckBoxLabel" : "ms 7/12/2016 11:00", - "symbolArray" : "C.G. 7/25/2018 14:24", + "symbolArray" : "tg 7/26/2019 15:44", "symbolArray:" : "C.G. 7/25/2018 14:24", "toggleSSL" : "ms 7/13/2016 17:37", - "updateMode" : "C.G. 7/25/2018 14:24", + "updateMode" : "pm 6/9/2019 13:21", "updateMode:" : "C.G. 7/25/2018 14:24", "username" : "ms 6/14/2016 09:22", - "username:" : "C.G. 7/25/2018 14:25", + "username:" : "tg 7/26/2019 15:55", "usernameHelpText" : "ms 6/14/2016 09:21" } } diff --git a/packages/IMAPClient-UI.package/ICLoginDialog.class/properties.json b/packages/IMAPClient-UI.package/ICLoginDialog.class/properties.json index 86d2cd71..7ee9e4c5 100644 --- a/packages/IMAPClient-UI.package/ICLoginDialog.class/properties.json +++ b/packages/IMAPClient-UI.package/ICLoginDialog.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "ms 7/28/2016 11:58", + "commentStamp" : "tg 7/8/2019 15:37", "instvars" : [ "accountName", "serverPort", diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/README.md b/packages/IMAPClient-UI.package/ICPasswordDialog.class/README.md index e69de29b..49652800 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/README.md +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/README.md @@ -0,0 +1 @@ +An ICLoginDialog is a toolbuilder-based UI for authorizing a user. It is basically a password prompt \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildAddPasswordButton..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildAddPasswordButton..st new file mode 100644 index 00000000..58590a7a --- /dev/null +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildAddPasswordButton..st @@ -0,0 +1,8 @@ +toolbuilder +buildAddPasswordButton: builder + + ^ builder pluggableButtonSpec new + model: self; + frame: (0 @ 0.5 extent: 1 @ 0.4); + label: 'login'; + action: #login \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildPasswordField..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildPasswordField..st new file mode 100644 index 00000000..3137a803 --- /dev/null +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildPasswordField..st @@ -0,0 +1,13 @@ +toolbuilder +buildPasswordField: builder + + ^ builder pluggableInputFieldSpec new + model: self; + askBeforeDiscardingEdits: false; + indicateUnacceptedChanges: false; + getText: #password; + setText: #loginWithPassword:; + editText: #password:; + font: (StrikeFont passwordFontSize: 12); + help: 'Password'; + frame: (0 @ 0.05 extent: 1 @ 0.4) \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildWith..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildWith..st index a90564cb..1d174749 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildWith..st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/buildWith..st @@ -1,41 +1,15 @@ -as yet unclassified +toolbuilder buildWith: builder - | window windowSpec passwordField addPasswordButton | + | newWindow | - windowSpec := builder pluggableWindowSpec new. - windowSpec + newWindow := builder build: (builder pluggableWindowSpec new model: self; - label: (self data at: 'name'); + label: (self data at: 'accountName'); extent: 200 @ 100; - children: OrderedCollection new. - - passwordField := builder pluggableInputFieldSpec new. - passwordField - model: self; - askBeforeDiscardingEdits: false; - indicateUnacceptedChanges: false; - getText: #password; - setText: #password:; - editText: #password:; - font: (StrikeFont passwordFontSize: 12); - help: 'Password'; - frame: (0 @ 0.05 extent: 1 @ 0.4). - - addPasswordButton := builder pluggableButtonSpec new. - addPasswordButton - model: self; - frame: (0 @ 0.5 extent: 1 @ 0.4); - label: 'login'; - action: #login. + children: { + self buildPasswordField: builder. + self buildAddPasswordButton: builder}). - windowSpec children addAll: { passwordField . addPasswordButton }. - - window := builder build: windowSpec. - self window: window. - - window submorphsDo: [:m | - (m class == PluggableTextMorphPlus) - ifTrue: [m textMorph on: #keyDown send: #keyEvent: to: self]]. - - ^ window \ No newline at end of file + self window: newWindow. + ^ newWindow \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/data..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/data..st index f09c4fa1..89877ea1 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/data..st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/data..st @@ -1,4 +1,4 @@ accessing -data: anObject +data: aDictionary - data := anObject \ No newline at end of file + data := aDictionary \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/folderDialogInstance..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/folderDialogInstance..st index 60e7bc32..ac607751 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/folderDialogInstance..st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/folderDialogInstance..st @@ -1,4 +1,4 @@ accessing -folderDialogInstance: anObject +folderDialogInstance: anICFolderDialog - folderDialogInstance := anObject \ No newline at end of file + folderDialogInstance := anICFolderDialog \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/keyEvent..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/keyEvent..st deleted file mode 100644 index f0b0f5f0..00000000 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/keyEvent..st +++ /dev/null @@ -1,13 +0,0 @@ -accessing -keyEvent: aKey - - "global keyEvent listener attached to morph and input fields" - - | shouldLogin | - - Smalltalk os platformName = 'Win32' - ifTrue: [shouldLogin := (aKey keyValue = 13)] - ifFalse: [shouldLogin := (aKey keyValue = 36)]. - - shouldLogin - ifTrue: [self login] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/login.st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/login.st index 0dfd7dbf..b7cb4977 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/login.st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/login.st @@ -1,14 +1,18 @@ -as yet unclassified login - - (self password = nil) - ifTrue: [ - UserDialogBoxMorph inform: 'Please put in a password' title: ''. +login + + | accountInfo | + self password ifNil: [ + self inform: 'Please put in a password'. ^ self]. - self data at: 'password' put: (self password). - - ((ICEndPoint new) testAccountWith: data) + self data at: 'password' put: (self password asString). + + [accountInfo := ICAccountInfo newWith: self data.] + on: Error + do: [:e | self inform: e asString. ^ self]. + + ((ICEndPoint new) testAccountWith: accountInfo) ifTrue: [ - self folderDialogInstance addPasswordToCollection: (self data). + self folderDialogInstance passwordPromtCallback: (self data). self window abandon] \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/loginWithPassword..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/loginWithPassword..st new file mode 100644 index 00000000..16c9df0d --- /dev/null +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/loginWithPassword..st @@ -0,0 +1,5 @@ +login +loginWithPassword: aText + + self password: aText. + self login \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/password..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/password..st index 5e5867f8..d7af466d 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/password..st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/password..st @@ -1,4 +1,4 @@ accessing -password: anObject +password: aText - password := anObject \ No newline at end of file + password := aText \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/window..st b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/window..st index c2cfa4b6..dc064990 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/window..st +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/instance/window..st @@ -1,4 +1,4 @@ accessing -window: anObject +window: aMorph - window := anObject \ No newline at end of file + window := aMorph \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/methodProperties.json b/packages/IMAPClient-UI.package/ICPasswordDialog.class/methodProperties.json index 2fb3e7e7..f59aa385 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/methodProperties.json +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/methodProperties.json @@ -2,14 +2,16 @@ "class" : { "openWith:and:" : "C.G. 6/20/2018 21:11" }, "instance" : { - "buildWith:" : "DH 6/21/2018 09:30", + "buildAddPasswordButton:" : "pm 6/25/2019 16:58", + "buildPasswordField:" : "pm 6/25/2019 16:57", + "buildWith:" : "tg 7/26/2019 15:51", "data" : "C.G. 7/25/2018 14:25", - "data:" : "C.G. 7/25/2018 14:25", + "data:" : "pm 6/9/2019 17:14", "folderDialogInstance" : "C.G. 7/25/2018 14:25", - "folderDialogInstance:" : "C.G. 7/25/2018 14:25", - "keyEvent:" : "DH 6/21/2018 09:30", - "login" : "C.G. 7/25/2018 12:24", + "folderDialogInstance:" : "pm 6/9/2019 17:14", + "login" : "tg 7/26/2019 21:41", + "loginWithPassword:" : "fr 6/13/2019 14:39", "password" : "C.G. 7/25/2018 14:25", - "password:" : "C.G. 7/25/2018 14:25", + "password:" : "fr 6/13/2019 14:44", "window" : "C.G. 7/25/2018 14:25", - "window:" : "C.G. 7/25/2018 14:25" } } + "window:" : "pm 6/9/2019 17:15" } } diff --git a/packages/IMAPClient-UI.package/ICPasswordDialog.class/properties.json b/packages/IMAPClient-UI.package/ICPasswordDialog.class/properties.json index 6fad4d61..19317e33 100644 --- a/packages/IMAPClient-UI.package/ICPasswordDialog.class/properties.json +++ b/packages/IMAPClient-UI.package/ICPasswordDialog.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "tg 7/9/2019 14:43", "instvars" : [ "data", "folderDialogInstance", diff --git a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/README.md b/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/class/initialize.st b/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/class/initialize.st deleted file mode 100644 index dead3973..00000000 --- a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/class/initialize.st +++ /dev/null @@ -1,4 +0,0 @@ -initialization -initialize - - ServiceRegistry current buildProvider: self new \ No newline at end of file diff --git a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/methodProperties.json b/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/methodProperties.json deleted file mode 100644 index d3523a9b..00000000 --- a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/methodProperties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "class" : { - "initialize" : "C.G. 7/25/2018 14:25" }, - "instance" : { - } } diff --git a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/properties.json b/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/properties.json deleted file mode 100644 index 12c3f2f8..00000000 --- a/packages/IMAPClient-UI.package/IMAPClientUIServiceProvider.class/properties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "category" : "IMAPClient-UI", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - ], - "name" : "IMAPClientUIServiceProvider", - "pools" : [ - ], - "super" : "ServiceProvider", - "type" : "normal" } diff --git a/screenshots/40866916-aaf887fc-6600-11e8-9dc8-847775df210c.png b/screenshots/40866916-aaf887fc-6600-11e8-9dc8-847775df210c.png deleted file mode 100644 index fb68b59677946bed379f62afe53ecbcd1db1fa12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133493 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 w=rwI#N~iq~j| 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 YKlhdWW=0LBLI3~&07*qoM6N<$g1M^{+yDRo diff --git a/screenshots/40867006-45090ee8-6601-11e8-8e89-9d9f6a536792.png b/screenshots/40867006-45090ee8-6601-11e8-8e89-9d9f6a536792.png deleted file mode 100644 index 87dc9192ce695d79d7dd81bcc235fd049a101b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221993 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⩔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�^kQ4MngWl5T+@`$ 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%0AE6SpUrP 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

`FOhS;rk3+^!Xa@Y~QLD3L{A8F^ckVjL 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 F{{la~d42!@ diff --git a/screenshots/40867029-7fddabc8-6601-11e8-9247-7df69755c6e9.png b/screenshots/40867029-7fddabc8-6601-11e8-9247-7df69755c6e9.png deleted file mode 100644 index 6eb7edc8b3ed10825f99ba99b784d2c8ff482523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200119 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 tTUcc4y~cnit7fKS|fFu>ZY50~SL< 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 LNkvXXu0mjfkXD3Q diff --git a/screenshots/architecture.png b/screenshots/architecture.png deleted file mode 100644 index 13c0f4046f7ea0aaaf25b2fddeb3a0891af397f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163390 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

    vfIV)mkz$ol<|d%t9$DsL_81I)d*VU6Fe? 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