New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

github.com/foxcpp/go-imap-backend-tests

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/foxcpp/go-imap-backend-tests

  • v0.0.0-20220105184719-e80aa29a5e16
  • Source
  • Go
  • Socket score

Version published
Created
Source

go-imap-backend-tests

Blackbox tests for go-imap backends.

The main intention of suite is to test for basic RFC 3501 conformance. Tests are developed in parallel with go-imap-sql so they reflect its conformance.

Tests

  • IMAPUserDB interface tests
  • Tests for mailbox management commands
  • Tests for SEARCH and FETCH commands (for UID versions too) (ListMessages, SearchMessages)
  • Tests for COPY/UID COPY commands (CopyMessages)
  • Tests for STATUS command (Status)
  • Tests for EXPUNGE command (Expunge)
  • Tests for UPDATE command (SetMessagesFlags)
  • Tests for unilateral updates (optional, backend.Updater interface)
  • Test for UID monotonic increase
  • Test for UIDVALIDITY/UIDNEXT change on mailbox rename
  • APPENDLIMIT extension tests (optional, see [appendlimit.go][appendlimit.go] for interfaces)
  • CHILDREN extension tests (optional, see [children/server.go][children/server.go] for interfaces)
  • MOVE extension tests (optional) (MoveMessages)

Blacklist/whitelist tests

You can disable some tests by setting Whitelist or Blacklist slices before calling RunTests.

If Whitelistis not nil, only tests that have name starting with any listed string will be run.

If Blacklistis not nil, tests that have name starting with any listed string will not be run. Blacklist is still checked if Whitelistis set.

Excluded tests will be skipped using testing/T.SkipNow function.

For strings, use full name of test, as printed by go test -v, but unescaped.

Incomplete RFC 3501 conformance

As this suite reflects state of go-imap-sql implementation, it may not test for all requirements of IMAP specification. There are known ignored cases:

  • /NoSelect attribute and removal of mailboxes with children

How to use

Tested backend must implement IMAPUsersDB interface.

Just call testsuite.RunTests(t, newBackend, closeBackend) from your backend (or backend_test) package. Each invocation of newBackend callback should provide clean instance of backend (e.g. with empty storage, etc). closeBackend will be called for backend after usage. New instance is created for each test.

FAQs

Package last updated on 05 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc