about summary refs log tree commit diff stats
path: root/html/090scenario_filesystem_test.mu.html
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-12-26 11:44:14 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-12-26 11:44:14 -0800
commit204dae921abff0c70e017215bb3c91fa6ca11aff (patch)
tree548788d18c881e3f6beb56133c1ca9d733ffa1e8 /html/090scenario_filesystem_test.mu.html
parente5c11a5137d538b7713dd8708ca767c208824c06 (diff)
downloadmu-204dae921abff0c70e017215bb3c91fa6ca11aff.tar.gz
3710
Turns out we don't need to explicitly add anchors for each line. Vim's TOhtml
has magic for that out of the box.
Diffstat (limited to 'html/090scenario_filesystem_test.mu.html')
-rw-r--r--html/090scenario_filesystem_test.mu.html198
1 files changed, 99 insertions, 99 deletions
diff --git a/html/090scenario_filesystem_test.mu.html b/html/090scenario_filesystem_test.mu.html
index 6b9f9452..3418c8b3 100644
--- a/html/090scenario_filesystem_test.mu.html
+++ b/html/090scenario_filesystem_test.mu.html
@@ -52,105 +52,105 @@ if ('onhashchange' in window) {
 </head>
 <body onload='JumpToLine();'>
 <pre id='vimCodeElement'>
-<a name="L1"></a><span id="L1" class="LineNr"> 1 </span><span class="Comment"># Check our support for fake file systems in scenarios.</span>
-<a name="L2"></a><span id="L2" class="LineNr"> 2 </span>
-<a name="L3"></a><span id="L3" class="LineNr"> 3 </span><span class="muScenario">scenario</span> read-from-fake-file [
-<a name="L4"></a><span id="L4" class="LineNr"> 4 </span>  <span class="Constant">local-scope</span>
-<a name="L5"></a><span id="L5" class="LineNr"> 5 </span>  assume-resources [
-<a name="L6"></a><span id="L6" class="LineNr"> 6 </span>    <span class="Constant">[a]</span> <span class="Special">&lt;-</span> [
-<a name="L7"></a><span id="L7" class="LineNr"> 7 </span><span class="Constant">      |xyz|</span>
-<a name="L8"></a><span id="L8" class="LineNr"> 8 </span>    ]
-<a name="L9"></a><span id="L9" class="LineNr"> 9 </span>  ]
-<a name="L10"></a><span id="L10" class="LineNr">10 </span>  contents:&amp;:source:char <span class="Special">&lt;-</span> start-reading resources, <span class="Constant">[a]</span>
-<a name="L11"></a><span id="L11" class="LineNr">11 </span>  1:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> read contents
-<a name="L12"></a><span id="L12" class="LineNr">12 </span>  2:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> read contents
-<a name="L13"></a><span id="L13" class="LineNr">13 </span>  3:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> read contents
-<a name="L14"></a><span id="L14" class="LineNr">14 </span>  4:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> read contents
-<a name="L15"></a><span id="L15" class="LineNr">15 </span>  _, 5:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> read contents
-<a name="L16"></a><span id="L16" class="LineNr">16 </span>  memory-should-contain [
-<a name="L17"></a><span id="L17" class="LineNr">17 </span>   <span class="Constant"> 1</span> <span class="Special">&lt;-</span><span class="Constant"> 120</span>  <span class="Comment"># x</span>
-<a name="L18"></a><span id="L18" class="LineNr">18 </span>   <span class="Constant"> 2</span> <span class="Special">&lt;-</span><span class="Constant"> 121</span>  <span class="Comment"># y</span>
-<a name="L19"></a><span id="L19" class="LineNr">19 </span>   <span class="Constant"> 3</span> <span class="Special">&lt;-</span><span class="Constant"> 122</span>  <span class="Comment"># z</span>
-<a name="L20"></a><span id="L20" class="LineNr">20 </span>   <span class="Constant"> 4</span> <span class="Special">&lt;-</span><span class="Constant"> 10</span>  <span class="Comment"># newline</span>
-<a name="L21"></a><span id="L21" class="LineNr">21 < #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include <glib.h>
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
#include <string.h>

#include <stabber.h>
#include <expect.h>

#include "proftest.h"

void
ping_server(void **state)
{
    stbbr_for_id("prof_disco_info_onconnect_2",
        "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>"
            "<query xmlns='http://jabber.org/protocol/disco#info'>"
                "<identity category='server' type='im' name='Prosody'/>"
                "<feature var='urn:xmpp:ping'/>"
            "</query>"
        "</iq>"
    );

    stbbr_for_id("prof_ping_4",
        "<iq id='prof_ping_4' type='result' to='stabber@localhost/profanity'/>"
    );
    stbbr_for_id("prof_ping_5",
        "<iq id='prof_ping_5' type='result' to='stabber@localhost/profanity'/>"
    );

    prof_connect();

    prof_input("/ping");
    assert_true(stbbr_received(
        "<iq id='prof_ping_4' type='get'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from server"));

    prof_input("/ping");
    assert_true(stbbr_received(
        "<iq id='prof_ping_5' type='get'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from server"));
}

void
ping_server_not_supported(void **state)
{
    stbbr_for_id("prof_disco_info_onconnect_2",
        "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>"
            "<query xmlns='http://jabber.org/protocol/disco#info'>"
                "<identity category='server' type='im' name='Stabber'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    prof_input("/ping");
    assert_true(prof_output_exact("Server does not support ping requests."));
}

void
ping_responds_to_server_request(void **state)
{
    prof_connect();

    stbbr_send(
        "<iq id='pingtest1' type='get' to='stabber@localhost/profanity' from='localhost'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    );

    assert_true(stbbr_received(
        "<iq id='pingtest1' type='result' from='stabber@localhost/profanity' to='localhost'/>"
    ));
}

void ping_jid(void **state)
{
    stbbr_for_id("prof_caps_4",
        "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>"
                "<identity category='client' type='console' name='Profanity0.6.0'/>"
                "<feature var='urn:xmpp:ping'/>"
                "<feature var='http://jabber.org/protocol/disco#info'/>"
                "<feature var='http://jabber.org/protocol/caps'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    stbbr_send(
        "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>"
            "<priority>10</priority>"
            "<status>I'm here</status>"
            "<c "
                "hash='sha-1' "
                "xmlns='http://jabber.org/protocol/caps' "
                "node='http://profanity-im.github.io' "
                "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='"
            "/>"
        "</presence>"
    );
    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\""));

    assert_true(stbbr_received(
        "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>"
        "</iq>"
    ));

    stbbr_for_id("prof_ping_5",
        "<iq from='buddy1@localhost/mobile' to='stabber@localhost' id='prof_ping_5' type='result'/>"
    );

    prof_input("/ping buddy1@localhost/mobile");

    assert_true(stbbr_received(
        "<iq id='prof_ping_5' type='get' to='buddy1@localhost/mobile'>"
            "<ping xmlns='urn:xmpp:ping'/>"
        "</iq>"
    ));
    assert_true(prof_output_exact("Ping response from buddy1@localhost/mobile"));
}

void ping_jid_not_supported(void **state)
{
    stbbr_for_id("prof_caps_4",
        "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>"
                "<identity category='client' type='console' name='Profanity0.6.0'/>"
                "<feature var='http://jabber.org/protocol/disco#info'/>"
                "<feature var='http://jabber.org/protocol/caps'/>"
            "</query>"
        "</iq>"
    );

    prof_connect();

    stbbr_send(
        "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>"
            "<priority>10</priority>"
            "<status>I'm here</status>"
            "<c "
                "hash='sha-1' "
                "xmlns='http://jabber.org/protocol/caps' "
                "node='http://profanity-im.github.io' "
                "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='"
            "/>"
        "</presence>"
    );
    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\""));

    assert_true(stbbr_received(
        "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>"
            "<query xmlns='http://jabber.org/protocol/disco#info' node='http://profanity-im.github.io#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>"
        "</iq>"
    ));

    prof_input("/ping buddy1@localhost/mobile");
    assert_true(prof_output_exact("buddy1@localhost/mobile does not support ping requests."));
}
1" class="LineNr">31 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">121/y</span>
+<span id="L32" class="LineNr">32 </span> close sink +<span id="L33" class="LineNr">33 </span> wait-for-routine writer +<span id="L34" class="LineNr">34 </span> contents-read-back:text <span class="Special">&lt;-</span> slurp resources, <span class="Constant">[a]</span> +<span id="L35" class="LineNr">35 </span> 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal contents-read-back, <span class="Constant">[xy]</span> +<span id="L36" class="LineNr">36 </span> memory-should-contain [ +<span id="L37" class="LineNr">37 </span> <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span> <span class="Comment"># file contents read back exactly match what was written</span> +<span id="L38" class="LineNr">38 </span> ] +<span id="L39" class="LineNr">39 </span>] +<span id="L40" class="LineNr">40 </span> +<span id="L41" class="LineNr">41 </span><span class="muScenario">scenario</span> write-to-new-fake-file-2 [ +<span id="L42" class="LineNr">42 </span> <span class="Constant">local-scope</span> +<span id="L43" class="LineNr">43 </span> assume-resources [ +<span id="L44" class="LineNr">44 </span> <span class="Constant">[a]</span> <span class="Special">&lt;-</span> [ +<span id="L45" class="LineNr">45 </span><span class="Constant"> |abc|</span> +<span id="L46" class="LineNr">46 </span> ] +<span id="L47" class="LineNr">47 </span> ] +<span id="L48" class="LineNr">48 </span> sink:&amp;:sink:char, writer:num/routine <span class="Special">&lt;-</span> start-writing resources, <span class="Constant">[b]</span> +<span id="L49" class="LineNr">49 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">120/x</span> +<span id="L50" class="LineNr">50 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">121/y</span> +<span id="L51" class="LineNr">51 </span> close sink +<span id="L52" class="LineNr">52 </span> wait-for-routine writer +<span id="L53" class="LineNr">53 </span> contents-read-back:text <span class="Special">&lt;-</span> slurp resources, <span class="Constant">[b]</span> +<span id="L54" class="LineNr">54 </span> 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal contents-read-back, <span class="Constant">[xy]</span> +<span id="L55" class="LineNr">55 </span> memory-should-contain [ +<span id="L56" class="LineNr">56 </span> <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span> <span class="Comment"># file contents read back exactly match what was written</span> +<span id="L57" class="LineNr">57 </span> ] +<span id="L58" class="LineNr">58 </span>] +<span id="L59" class="LineNr">59 </span> +<span id="L60" class="LineNr">60 </span><span class="muScenario">scenario</span> write-to-fake-file-that-exists [ +<span id="L61" class="LineNr">61 </span> <span class="Constant">local-scope</span> +<span id="L62" class="LineNr">62 </span> assume-resources [ +<span id="L63" class="LineNr">63 </span> <span class="Constant">[a]</span> <span class="Special">&lt;-</span> <span class="Constant">[]</span> +<span id="L64" class="LineNr">64 </span> ] +<span id="L65" class="LineNr">65 </span> sink:&amp;:sink:char, writer:num/routine <span class="Special">&lt;-</span> start-writing resources, <span class="Constant">[a]</span> +<span id="L66" class="LineNr">66 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">120/x</span> +<span id="L67" class="LineNr">67 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">121/y</span> +<span id="L68" class="LineNr">68 </span> close sink +<span id="L69" class="LineNr">69 </span> wait-for-routine writer +<span id="L70" class="LineNr">70 </span> contents-read-back:text <span class="Special">&lt;-</span> slurp resources, <span class="Constant">[a]</span> +<span id="L71" class="LineNr">71 </span> 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal contents-read-back, <span class="Constant">[xy]</span> +<span id="L72" class="LineNr">72 </span> memory-should-contain [ +<span id="L73" class="LineNr">73 </span> <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span> <span class="Comment"># file contents read back exactly match what was written</span> +<span id="L74" class="LineNr">74 </span> ] +<span id="L75" class="LineNr">75 </span>] +<span id="L76" class="LineNr">76 </span> +<span id="L77" class="LineNr">77 </span><span class="muScenario">scenario</span> write-to-existing-file-preserves-other-files [ +<span id="L78" class="LineNr">78 </span> <span class="Constant">local-scope</span> +<span id="L79" class="LineNr">79 </span> assume-resources [ +<span id="L80" class="LineNr">80 </span> <span class="Constant">[a]</span> <span class="Special">&lt;-</span> <span class="Constant">[]</span> +<span id="L81" class="LineNr">81 </span> <span class="Constant">[b]</span> <span class="Special">&lt;-</span> [ +<span id="L82" class="LineNr">82 </span><span class="Constant"> |bcd|</span> +<span id="L83" class="LineNr">83 </span> ] +<span id="L84" class="LineNr">84 </span> ] +<span id="L85" class="LineNr">85 </span> sink:&amp;:sink:char, writer:num/routine <span class="Special">&lt;-</span> start-writing resources, <span class="Constant">[a]</span> +<span id="L86" class="LineNr">86 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">120/x</span> +<span id="L87" class="LineNr">87 </span> sink <span class="Special">&lt;-</span> write sink, <span class="Constant">121/y</span> +<span id="L88" class="LineNr">88 </span> close sink +<span id="L89" class="LineNr">89 </span> wait-for-routine writer +<span id="L90" class="LineNr">90 </span> contents-read-back:text <span class="Special">&lt;-</span> slurp resources, <span class="Constant">[a]</span> +<span id="L91" class="LineNr">91 </span> 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal contents-read-back, <span class="Constant">[xy]</span> +<span id="L92" class="LineNr">92 </span> other-file-contents:text <span class="Special">&lt;-</span> slurp resources, <span class="Constant">[b]</span> +<span id="L93" class="LineNr">93 </span> 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal other-file-contents, <span class="Constant">[bcd</span> +<span id="L94" class="LineNr">94 </span><span class="Constant">]</span> +<span id="L95" class="LineNr">95 </span> memory-should-contain [ +<span id="L96" class="LineNr">96 </span> <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span> <span class="Comment"># file contents read back exactly match what was written</span> +<span id="L97" class="LineNr">97 </span> <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span> <span class="Comment"># other files also continue to persist unchanged</span> +<span id="L98" class="LineNr">98 </span> ] +<span id="L99" class="LineNr">99 </span>] </pre> </body> </html>