Current section

Files

Jump to
mailman docs Mailman.TestServer.html
Raw

docs/Mailman.TestServer.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.16.3">
<title>Mailman.TestServer – Mailman v0.4.0</title>
<link rel="stylesheet" href="dist/app-5b9e160cec.css" />
<link rel="canonical" href="https://hexdocs.pm/mailman/Mailman.TestServer.html" />
<script src="dist/sidebar_items-f0abb4a495.js"></script>
</head>
<body data-type="modules">
<script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
<div class="main">
<button class="sidebar-toggle">
<span class="icon-menu" aria-hidden="true"></span>
<span class="sr-only">Toggle Sidebar</span>
</button>
<section class="sidebar">
<a href="https://github.com/kamilc/mailman" class="sidebar-projectLink">
<div class="sidebar-projectDetails">
<h1 class="sidebar-projectName">
Mailman
</h1>
<h2 class="sidebar-projectVersion">
v0.4.0
</h2>
</div>
</a>
<form class="sidebar-search" action="search.html">
<button type="submit" class="search-button">
<span class="icon-search" aria-hidden="true"></span>
</button>
<input name="q" type="text" id="search-list" class="search-input" placeholder="search" aria-label="Search" autocomplete="off" />
</form>
<ul class="sidebar-listNav">
<li><a id="extras-list" href="#full-list">Pages</a></li>
<li><a id="modules-list" href="#full-list">Modules</a></li>
<li><a id="protocols-list" href="#full-list">Protocols</a></li>
</ul>
<div class="gradient"></div>
<ul id="full-list" class="sidebar-fullList"></ul>
</section>
<section class="content">
<div class="content-outer">
<div id="content" class="content-inner">
<h1>
<small class="visible-xs">Mailman v0.4.0</small>
Mailman.TestServer
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L1" title="View Source" class="view-source" rel="help">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</h1>
<section id="moduledoc">
<p>Implementation of the testing SMTP server</p>
</section>
<section id="summary" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#summary">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this section</span>
</a>
Summary
</h1>
<div class="summary-functions summary">
<h2>
<a href="#functions">Functions</a>
</h2>
<div class="summary-row">
<div class="summary-signature">
<a href="#child_spec/1">child_spec(arg)</a>
</div>
<div class="summary-synopsis"><p>Returns a specification to start this module under a supervisor</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#clear_deliveries/0">clear_deliveries()</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#clear_deliveries/1">clear_deliveries(pid)</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#deliveries/0">deliveries()</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#deliveries/1">deliveries(pid)</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#init/1">init(arg)</a>
</div>
<div class="summary-synopsis"><p>Invoked when the server is started. <code class="inline">start_link/3</code> or <code class="inline">start/3</code> will
block until it returns</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#register_delivery/1">register_delivery(message)</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#register_delivery/2">register_delivery(pid, message)</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#set_global_mode!/1">set_global_mode!(toggle)</a>
</div>
<div class="summary-synopsis"><p>Sets “global” mode</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#start/0">start()</a>
</div>
<div class="summary-synopsis"><p>Starts the TestServer supervisor. Provided for compatibility</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#start_link/2">start_link(initial_state, parent_pid)</a>
</div>
</div>
</div>
</section>
<section id="functions" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#functions">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this section</span>
</a>
Functions
</h1>
<div class="detail" id="child_spec/1">
<div class="detail-header">
<a href="#child_spec/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">child_spec(arg)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L4" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Returns a specification to start this module under a supervisor.</p>
<p>See <a href="https://hexdocs.pm/elixir/Supervisor.html"><code class="inline">Supervisor</code></a>.</p>
</section>
</div>
<div class="detail" id="clear_deliveries/0">
<div class="detail-header">
<a href="#clear_deliveries/0" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">clear_deliveries()</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L46" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="clear_deliveries/1">
<div class="detail-header">
<a href="#clear_deliveries/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">clear_deliveries(pid)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L47" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="deliveries/0">
<div class="detail-header">
<a href="#deliveries/0" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">deliveries()</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L36" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="deliveries/1">
<div class="detail-header">
<a href="#deliveries/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">deliveries(pid)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L37" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="init/1">
<div class="detail-header">
<a href="#init/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">init(arg)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L71" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Invoked when the server is started. <code class="inline">start_link/3</code> or <code class="inline">start/3</code> will
block until it returns.</p>
<p><code class="inline">args</code> is the argument term (second argument) passed to <code class="inline">start_link/3</code>.</p>
<p>Returning <code class="inline">{:ok, state}</code> will cause <code class="inline">start_link/3</code> to return
<code class="inline">{:ok, pid}</code> and the process to enter its loop.</p>
<p>Returning <code class="inline">{:ok, state, timeout}</code> is similar to <code class="inline">{:ok, state}</code>
except <code class="inline">handle_info(:timeout, state)</code> will be called after <code class="inline">timeout</code>
milliseconds if no messages are received within the timeout.</p>
<p>Returning <code class="inline">{:ok, state, :hibernate}</code> is similar to
<code class="inline">{:ok, state}</code> except the process is hibernated before entering the loop. See
<code class="inline">c:handle_call/3</code> for more information on hibernation.</p>
<p>Returning <code class="inline">:ignore</code> will cause <code class="inline">start_link/3</code> to return <code class="inline">:ignore</code> and the
process will exit normally without entering the loop or calling <code class="inline">c:terminate/2</code>.
If used when part of a supervision tree the parent supervisor will not fail
to start nor immediately try to restart the <a href="https://hexdocs.pm/elixir/GenServer.html"><code class="inline">GenServer</code></a>. The remainder of the
supervision tree will be (re)started and so the <a href="https://hexdocs.pm/elixir/GenServer.html"><code class="inline">GenServer</code></a> should not be
required by other processes. It can be started later with
<a href="https://hexdocs.pm/elixir/Supervisor.html#restart_child/2"><code class="inline">Supervisor.restart_child/2</code></a> as the child specification is saved in the parent
supervisor. The main use cases for this are:</p>
<ul>
<li>The <a href="https://hexdocs.pm/elixir/GenServer.html"><code class="inline">GenServer</code></a> is disabled by configuration but might be enabled later.
</li>
<li>An error occurred and it will be handled by a different mechanism than the
<a href="https://hexdocs.pm/elixir/Supervisor.html"><code class="inline">Supervisor</code></a>. Likely this approach involves calling <a href="https://hexdocs.pm/elixir/Supervisor.html#restart_child/2"><code class="inline">Supervisor.restart_child/2</code></a>
after a delay to attempt a restart.
</li>
</ul>
<p>Returning <code class="inline">{:stop, reason}</code> will cause <code class="inline">start_link/3</code> to return
<code class="inline">{:error, reason}</code> and the process to exit with reason <code class="inline">reason</code> without
entering the loop or calling <code class="inline">c:terminate/2</code>.</p>
<p>Callback implementation for <a href="https://hexdocs.pm/elixir/GenServer.html#c:init/1"><code class="inline">GenServer.init/1</code></a>.</p>
</section>
</div>
<div class="detail" id="register_delivery/1">
<div class="detail-header">
<a href="#register_delivery/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">register_delivery(message)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L41" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="register_delivery/2">
<div class="detail-header">
<a href="#register_delivery/2" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">register_delivery(pid, message)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L42" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
<div class="detail" id="set_global_mode!/1">
<div class="detail-header">
<a href="#set_global_mode!/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">set_global_mode!(toggle)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L16" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
<div class="specs">
<pre>set_global_mode!(boolean) :: boolean</pre>
</div>
</div>
<section class="docstring">
<p>Sets “global” mode.</p>
<p>When “global” mode is enabled, the calling process is ignored and a global
TestServer is used instead. Use this when you need to test e-mail sending
across multiple processes. Keep in mind that this is not async-safe, and you
should specify <code class="inline">async: false</code> when using ExUnit.</p>
</section>
</div>
<div class="detail" id="start/0">
<div class="detail-header">
<a href="#start/0" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">start()</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L28" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
<p>Starts the TestServer supervisor. Provided for compatibility.</p>
<p>Mailman.TestServerSupervisor.start_link/0 is preferred, typically in your
<code class="inline">test_helper.exs</code> file.</p>
</section>
</div>
<div class="detail" id="start_link/2">
<div class="detail-header">
<a href="#start_link/2" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<span class="signature">start_link(initial_state, parent_pid)</span>
<a href="https://github.com/kamilc/mailman/blob/master/lib/mailman/test_server.ex#L32" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</div>
<section class="docstring">
</section>
</div>
</section>
<footer class="footer">
<p>
<span class="line">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" rel="help" target="_blank">ExDoc</a> (v0.16.3),
</span>
<span class="line">
designed by
<a href="https://twitter.com/dignifiedquire" target="_blank" title="@dignifiedquire">Friedel Ziegelmayer</a>.
</span>
</p>
<button class="night-mode-toggle"><span class="sr-only">Switch theme</span></button>
</footer>
</div>
</div>
</section>
</div>
<script src="dist/app-da04b39d0c.js"></script>
</body>
</html>