jubjub 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.mdown +41 -0
 - data/lib/jubjub/connection/xmpp_gateway.rb +5 -0
 - data/lib/jubjub/connection/xmpp_gateway/pubsub.rb +242 -0
 - data/lib/jubjub/muc.rb +2 -4
 - data/lib/jubjub/pubsub.rb +107 -0
 - data/lib/jubjub/user.rb +6 -1
 - data/spec/connection/{xmpp_gateway_spec.rb → xmpp_gateway_muc_spec.rb} +0 -0
 - data/spec/connection/xmpp_gateway_pubsub_spec.rb +153 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_create.yml +47 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_destroy.yml +47 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_destroy_with_redirect.yml +93 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_list.yml +119 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_subscribe.yml +72 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_unsubscribe.yml +93 -0
 - data/spec/fixtures/vcr_cassettes/pubsub_unsubscribe_with_subid.yml +93 -0
 - data/spec/mixins/user_spec.rb +16 -0
 - data/spec/models/pubsub_collection_spec.rb +122 -0
 - data/spec/models/pubsub_spec.rb +108 -0
 - data/spec/models/pubsub_subscription_spec.rb +115 -0
 - metadata +30 -6
 
| 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 3 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 4 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 5 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 6 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3ccreate%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 7 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 8 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 9 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 10 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 11 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 12 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 13 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 14 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 15 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 16 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 17 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - "230"
         
     | 
| 
      
 19 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 20 
     | 
    
         
            +
                  <iq type="result" id="blather0045" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/310086191298628414672003">
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 22 
     | 
    
         
            +
                      <create node="node_1"/>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 24 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 28 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 29 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 30 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 31 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3csubscribe%20node%3d%22node_1%22%20jid%3d%22theozaurus%40theo-template.local%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 32 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 33 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 34 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 35 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 36 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 37 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 38 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 39 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 40 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 41 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 42 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  - "307"
         
     | 
| 
      
 44 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <iq type="result" id="blather0047" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/310086191298628414672003">
         
     | 
| 
      
 46 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 47 
     | 
    
         
            +
                      <subscription jid="theozaurus@theo-template.local" subscription="subscribed" subid="512996CE5D7F4"/>
         
     | 
| 
      
 48 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 49 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 52 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 53 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 54 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 55 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 56 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%23owner%22%3e%0a%20%20%20%20%3cdelete%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 57 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 58 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 60 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 61 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 62 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 63 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 64 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 65 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 66 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 67 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 68 
     | 
    
         
            +
                  - "132"
         
     | 
| 
      
 69 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 70 
     | 
    
         
            +
                  <iq type="result" id="blather0049" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/310086191298628414672003"/>
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
         @@ -0,0 +1,93 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 3 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 4 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 5 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 6 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3ccreate%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 7 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 8 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 9 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 10 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 11 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 12 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 13 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 14 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 15 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 16 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 17 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - "232"
         
     | 
| 
      
 19 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 20 
     | 
    
         
            +
                  <iq type="result" id="blather0059" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/10036730731298628601765031">
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 22 
     | 
    
         
            +
                      <create node="node_1"/>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 24 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 28 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 29 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 30 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 31 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3csubscribe%20node%3d%22node_1%22%20jid%3d%22theozaurus%40theo-template.local%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 32 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 33 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 34 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 35 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 36 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 37 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 38 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 39 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 40 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 41 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 42 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  - "309"
         
     | 
| 
      
 44 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <iq type="result" id="blather005b" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/10036730731298628601765031">
         
     | 
| 
      
 46 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 47 
     | 
    
         
            +
                      <subscription jid="theozaurus@theo-template.local" subscription="subscribed" subid="51299779D3E23"/>
         
     | 
| 
      
 48 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 49 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 52 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 53 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 54 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 55 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 56 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3cunsubscribe%20node%3d%22node_1%22%20jid%3d%22theozaurus%40theo-template.local%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 57 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 58 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 60 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 61 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 62 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 63 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 64 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 65 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 66 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 67 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 68 
     | 
    
         
            +
                  - "134"
         
     | 
| 
      
 69 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 70 
     | 
    
         
            +
                  <iq type="result" id="blather005d" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/10036730731298628601765031"/>
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 73 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 74 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 75 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 76 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 77 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%23owner%22%3e%0a%20%20%20%20%3cdelete%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 78 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 79 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 80 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 81 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 82 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 83 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 84 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 85 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 86 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 87 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 88 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 89 
     | 
    
         
            +
                  - "134"
         
     | 
| 
      
 90 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 91 
     | 
    
         
            +
                  <iq type="result" id="blather005f" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/10036730731298628601765031"/>
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
         @@ -0,0 +1,93 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 3 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 4 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 5 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 6 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3ccreate%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 7 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 8 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 9 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 10 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 11 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 12 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 13 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 14 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 15 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 16 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 17 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - "230"
         
     | 
| 
      
 19 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 20 
     | 
    
         
            +
                  <iq type="result" id="blather00ab" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/665676628129862910568528">
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 22 
     | 
    
         
            +
                      <create node="node_1"/>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 24 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 28 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 29 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 30 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 31 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3csubscribe%20node%3d%22node_1%22%20jid%3d%22theozaurus%40theo-template.local%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 32 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 33 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 34 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 35 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 36 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 37 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 38 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 39 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 40 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 41 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 42 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  - "307"
         
     | 
| 
      
 44 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <iq type="result" id="blather00ad" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/665676628129862910568528">
         
     | 
| 
      
 46 
     | 
    
         
            +
                    <pubsub xmlns="http://jabber.org/protocol/pubsub">
         
     | 
| 
      
 47 
     | 
    
         
            +
                      <subscription jid="theozaurus@theo-template.local" subscription="subscribed" subid="5129997143EAA"/>
         
     | 
| 
      
 48 
     | 
    
         
            +
                    </pubsub>
         
     | 
| 
      
 49 
     | 
    
         
            +
                  </iq>
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 52 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 53 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 54 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 55 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 56 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%22%3e%0a%20%20%20%20%3cunsubscribe%20node%3d%22node_1%22%20jid%3d%22theozaurus%40theo-template.local%22%20subid%3d%225129997143EAA%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 57 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 58 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 60 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 61 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 62 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 63 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 64 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 65 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 66 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 67 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 68 
     | 
    
         
            +
                  - "132"
         
     | 
| 
      
 69 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 70 
     | 
    
         
            +
                  <iq type="result" id="blather00af" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/665676628129862910568528"/>
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
| 
      
 73 
     | 
    
         
            +
            - !ruby/struct:VCR::HTTPInteraction 
         
     | 
| 
      
 74 
     | 
    
         
            +
              request: !ruby/struct:VCR::Request 
         
     | 
| 
      
 75 
     | 
    
         
            +
                method: :post
         
     | 
| 
      
 76 
     | 
    
         
            +
                uri: http://theozaurus%40theo-template.local:secret@127.0.0.1:8000/
         
     | 
| 
      
 77 
     | 
    
         
            +
                body: stanza=%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3ciq%20type%3d%22set%22%20to%3d%22pubsub.theo-template.local%22%3e%0a%20%20%3cpubsub%20xmlns%3d%22http%3a%2f%2fjabber.org%2fprotocol%2fpubsub%23owner%22%3e%0a%20%20%20%20%3cdelete%20node%3d%22node_1%22%2f%3e%0a%20%20%3c%2fpubsub%3e%0a%3c%2fiq%3e%0a
         
     | 
| 
      
 78 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 79 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 80 
     | 
    
         
            +
                  - application/x-www-form-urlencoded
         
     | 
| 
      
 81 
     | 
    
         
            +
              response: !ruby/struct:VCR::Response 
         
     | 
| 
      
 82 
     | 
    
         
            +
                status: !ruby/struct:VCR::ResponseStatus 
         
     | 
| 
      
 83 
     | 
    
         
            +
                  code: 200
         
     | 
| 
      
 84 
     | 
    
         
            +
                  message: ...
         
     | 
| 
      
 85 
     | 
    
         
            +
                headers: 
         
     | 
| 
      
 86 
     | 
    
         
            +
                  content-type: 
         
     | 
| 
      
 87 
     | 
    
         
            +
                  - application/xml
         
     | 
| 
      
 88 
     | 
    
         
            +
                  content-length: 
         
     | 
| 
      
 89 
     | 
    
         
            +
                  - "132"
         
     | 
| 
      
 90 
     | 
    
         
            +
                body: |
         
     | 
| 
      
 91 
     | 
    
         
            +
                  <iq type="result" id="blather00b1" from="pubsub.theo-template.local" to="theozaurus@theo-template.local/665676628129862910568528"/>
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                http_version: "1.1"
         
     | 
    
        data/spec/mixins/user_spec.rb
    CHANGED
    
    | 
         @@ -131,6 +131,22 @@ describe Jubjub::User do 
     | 
|
| 
       131 
131 
     | 
    
         
             
                    @user.mucs('wibble.com').jid.should == Jubjub::Jid.new('wibble.com')
         
     | 
| 
       132 
132 
     | 
    
         
             
                  end
         
     | 
| 
       133 
133 
     | 
    
         
             
                end
         
     | 
| 
      
 134 
     | 
    
         
            +
                
         
     | 
| 
      
 135 
     | 
    
         
            +
                describe 'pubsub' do
         
     | 
| 
      
 136 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 137 
     | 
    
         
            +
                    mock_jubjub_connection
         
     | 
| 
      
 138 
     | 
    
         
            +
                  end
         
     | 
| 
      
 139 
     | 
    
         
            +
                     
         
     | 
| 
      
 140 
     | 
    
         
            +
                  it 'should return Jubjub::PubsubCollection for conference.biggles.com when no service specified' do        
         
     | 
| 
      
 141 
     | 
    
         
            +
                    @user.pubsub.should be_a Jubjub::PubsubCollection
         
     | 
| 
      
 142 
     | 
    
         
            +
                    @user.pubsub.jid.should == Jubjub::Jid.new('pubsub.biggles.com')
         
     | 
| 
      
 143 
     | 
    
         
            +
                  end
         
     | 
| 
      
 144 
     | 
    
         
            +
                  
         
     | 
| 
      
 145 
     | 
    
         
            +
                  it 'should return Jubjub::PubsubCollection for service when specified' do
         
     | 
| 
      
 146 
     | 
    
         
            +
                    @user.pubsub('wibble.com').should be_a Jubjub::PubsubCollection
         
     | 
| 
      
 147 
     | 
    
         
            +
                    @user.pubsub('wibble.com').jid.should == Jubjub::Jid.new('wibble.com')
         
     | 
| 
      
 148 
     | 
    
         
            +
                  end
         
     | 
| 
      
 149 
     | 
    
         
            +
                end
         
     | 
| 
       134 
150 
     | 
    
         | 
| 
       135 
151 
     | 
    
         
             
              end
         
     | 
| 
       136 
152 
     | 
    
         | 
| 
         @@ -0,0 +1,122 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Jubjub::PubsubCollection do
         
     | 
| 
      
 4 
     | 
    
         
            +
              
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe "that are proxied like" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                before do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @mock_connection = mock
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @nodes = [
         
     | 
| 
      
 10 
     | 
    
         
            +
                    Jubjub::Pubsub.new('pubsub.foo.com', 'node_1', @mock_connection),
         
     | 
| 
      
 11 
     | 
    
         
            +
                    Jubjub::Pubsub.new('pubsub.foo.com', 'node_2', @mock_connection)        
         
     | 
| 
      
 12 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 13 
     | 
    
         
            +
                  @mock_connection.stub_chain( :pubsub, :list ).and_return(@nodes)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
                
         
     | 
| 
      
 16 
     | 
    
         
            +
                describe "inspect" do
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  it "should show the list of rooms, not MucCollection" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    Jubjub::PubsubCollection.new('pubsub.foo.com', @mock_connection).inspect.should eql(@nodes.inspect)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                describe "map" do
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  it "should pass the block to the rooms" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    c = Jubjub::PubsubCollection.new('pubsub.foo.com', @mock_connection)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    c.map{|r| r.node.to_s }.should eql(['node_1', 'node_2'])
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
                
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
              
         
     | 
| 
      
 35 
     | 
    
         
            +
              describe "instance method" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                
         
     | 
| 
      
 37 
     | 
    
         
            +
                describe "jid" do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  it "should return the jid" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", mock
         
     | 
| 
      
 40 
     | 
    
         
            +
                    p.jid.should == Jubjub::Jid.new('pubsub.foo.com')
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
                     
         
     | 
| 
      
 44 
     | 
    
         
            +
                describe "subscribe" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  it "should call pubsub.subscribe on connection" do
         
     | 
| 
      
 46 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 47 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :subscribe
         
     | 
| 
      
 48 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:subscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )
         
     | 
| 
      
 49 
     | 
    
         
            +
                
         
     | 
| 
      
 50 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 51 
     | 
    
         
            +
                    p.subscribe "node"       
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
                
         
     | 
| 
      
 55 
     | 
    
         
            +
                describe "unsubscribe" do
         
     | 
| 
      
 56 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 57 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 58 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :unsubscribe
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  
         
     | 
| 
      
 61 
     | 
    
         
            +
                  it "without subid should call pubsub.unsubscribe on connection" do
         
     | 
| 
      
 62 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 65 
     | 
    
         
            +
                    p.unsubscribe "node"       
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  
         
     | 
| 
      
 68 
     | 
    
         
            +
                  it "with subid should call pubsub.unsubscribe on connection" do
         
     | 
| 
      
 69 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', '123' )
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 72 
     | 
    
         
            +
                    p.unsubscribe "node", "123"
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
                
         
     | 
| 
      
 76 
     | 
    
         
            +
                describe "create" do
         
     | 
| 
      
 77 
     | 
    
         
            +
                  it "should call pubsub.create on connection" do
         
     | 
| 
      
 78 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 79 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :create
         
     | 
| 
      
 80 
     | 
    
         
            +
                    
         
     | 
| 
      
 81 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:create).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )        
         
     | 
| 
      
 82 
     | 
    
         
            +
                    
         
     | 
| 
      
 83 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 84 
     | 
    
         
            +
                    p.create "node"
         
     | 
| 
      
 85 
     | 
    
         
            +
                  end
         
     | 
| 
      
 86 
     | 
    
         
            +
                end
         
     | 
| 
      
 87 
     | 
    
         
            +
                
         
     | 
| 
      
 88 
     | 
    
         
            +
                describe "destroy" do
         
     | 
| 
      
 89 
     | 
    
         
            +
                  it "with redirect should call pubsub.destroy on connection" do
         
     | 
| 
      
 90 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 91 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :destroy
         
     | 
| 
      
 92 
     | 
    
         
            +
                    
         
     | 
| 
      
 93 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:destroy).with( 
         
     | 
| 
      
 94 
     | 
    
         
            +
                      Jubjub::Jid.new('pubsub.foo.com'),
         
     | 
| 
      
 95 
     | 
    
         
            +
                      'node',
         
     | 
| 
      
 96 
     | 
    
         
            +
                      Jubjub::Jid.new('pubsub.new.com'),
         
     | 
| 
      
 97 
     | 
    
         
            +
                      'node_2'
         
     | 
| 
      
 98 
     | 
    
         
            +
                    )
         
     | 
| 
      
 99 
     | 
    
         
            +
                    
         
     | 
| 
      
 100 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 101 
     | 
    
         
            +
                    p.destroy "node", "pubsub.new.com", "node_2"
         
     | 
| 
      
 102 
     | 
    
         
            +
                  end
         
     | 
| 
      
 103 
     | 
    
         
            +
                  
         
     | 
| 
      
 104 
     | 
    
         
            +
                  it "without redirect should call pubsub.destroy on connection" do
         
     | 
| 
      
 105 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 106 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :destroy
         
     | 
| 
      
 107 
     | 
    
         
            +
                    
         
     | 
| 
      
 108 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:destroy).with( 
         
     | 
| 
      
 109 
     | 
    
         
            +
                      Jubjub::Jid.new('pubsub.foo.com'),
         
     | 
| 
      
 110 
     | 
    
         
            +
                      'node',
         
     | 
| 
      
 111 
     | 
    
         
            +
                      nil,
         
     | 
| 
      
 112 
     | 
    
         
            +
                      nil
         
     | 
| 
      
 113 
     | 
    
         
            +
                    )
         
     | 
| 
      
 114 
     | 
    
         
            +
                    
         
     | 
| 
      
 115 
     | 
    
         
            +
                    p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
         
     | 
| 
      
 116 
     | 
    
         
            +
                    p.destroy "node"
         
     | 
| 
      
 117 
     | 
    
         
            +
                  end
         
     | 
| 
      
 118 
     | 
    
         
            +
                end
         
     | 
| 
      
 119 
     | 
    
         
            +
                
         
     | 
| 
      
 120 
     | 
    
         
            +
              end
         
     | 
| 
      
 121 
     | 
    
         
            +
              
         
     | 
| 
      
 122 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Jubjub::Pubsub do
         
     | 
| 
      
 4 
     | 
    
         
            +
              
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe "instance method" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                describe "inspect" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  
         
     | 
| 
      
 9 
     | 
    
         
            +
                  it "should not show connection information" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',"SHHHH CONNECTION OBJECT")
         
     | 
| 
      
 11 
     | 
    
         
            +
                    m.inspect.should_not match 'SHHHH CONNECTION OBJECT'
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  
         
     | 
| 
      
 14 
     | 
    
         
            +
                  it "should show string version of jid" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',mock)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    m.inspect.should match '@jid="pubsub.foo.com"'
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  
         
     | 
| 
      
 19 
     | 
    
         
            +
                  it "should show node" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),nil,mock)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    m.inspect.should match '@node=nil'
         
     | 
| 
      
 22 
     | 
    
         
            +
                    
         
     | 
| 
      
 23 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new(Jubjub::Jid.new("pubsub.foo.com"),'node',mock)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    m.inspect.should match '@node="node"'
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                  
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
                
         
     | 
| 
      
 29 
     | 
    
         
            +
                describe "jid" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                  it "should return the jid" do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    Jubjub::Pubsub.new('pubsub.foo.com','node', mock).jid.should == Jubjub::Jid.new('pubsub.foo.com')
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
                
         
     | 
| 
      
 35 
     | 
    
         
            +
                describe "node" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  it "should return the node" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    Jubjub::Pubsub.new('pubsub.foo.com','node', mock).node.should == 'node'
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
                
         
     | 
| 
      
 41 
     | 
    
         
            +
                describe "subscribe" do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  it "should call pubsub.subscribe on connection" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 44 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :subscribe
         
     | 
| 
      
 45 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:subscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
         
     | 
| 
      
 48 
     | 
    
         
            +
                    m.subscribe
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
                
         
     | 
| 
      
 52 
     | 
    
         
            +
                describe "unsubscribe" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  
         
     | 
| 
      
 54 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 55 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 56 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :unsubscribe
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
                  
         
     | 
| 
      
 59 
     | 
    
         
            +
                  describe "with subid" do
         
     | 
| 
      
 60 
     | 
    
         
            +
                    it "should call pubsub.unsubscribe on connection" do
         
     | 
| 
      
 61 
     | 
    
         
            +
                      @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', 'wibble' )
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                      m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
         
     | 
| 
      
 64 
     | 
    
         
            +
                      m.unsubscribe 'wibble'
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  
         
     | 
| 
      
 68 
     | 
    
         
            +
                  describe "without subid" do
         
     | 
| 
      
 69 
     | 
    
         
            +
                    it "should call pubsub.unsubscribe on connection" do
         
     | 
| 
      
 70 
     | 
    
         
            +
                      @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                      m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
         
     | 
| 
      
 73 
     | 
    
         
            +
                      m.unsubscribe
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
                  
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
                
         
     | 
| 
      
 79 
     | 
    
         
            +
                describe "destroy" do
         
     | 
| 
      
 80 
     | 
    
         
            +
                  
         
     | 
| 
      
 81 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 82 
     | 
    
         
            +
                    @mock_connection = mock
         
     | 
| 
      
 83 
     | 
    
         
            +
                    @mock_connection.stub_chain :pubsub, :destroy
         
     | 
| 
      
 84 
     | 
    
         
            +
                  end
         
     | 
| 
      
 85 
     | 
    
         
            +
                  
         
     | 
| 
      
 86 
     | 
    
         
            +
                  it "without redirect should call pubsub.destroy on connection" do
         
     | 
| 
      
 87 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:destroy).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil, nil )
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
         
     | 
| 
      
 90 
     | 
    
         
            +
                    m.destroy
         
     | 
| 
      
 91 
     | 
    
         
            +
                  end
         
     | 
| 
      
 92 
     | 
    
         
            +
                  
         
     | 
| 
      
 93 
     | 
    
         
            +
                  it "with redirect should call pubsub.destroy on connection" do
         
     | 
| 
      
 94 
     | 
    
         
            +
                    @mock_connection.pubsub.should_receive(:destroy).with( 
         
     | 
| 
      
 95 
     | 
    
         
            +
                      Jubjub::Jid.new('pubsub.foo.com'),
         
     | 
| 
      
 96 
     | 
    
         
            +
                      'node',
         
     | 
| 
      
 97 
     | 
    
         
            +
                      Jubjub::Jid.new('pubsub.new.com'),
         
     | 
| 
      
 98 
     | 
    
         
            +
                      'node_2' )
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                    m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
         
     | 
| 
      
 101 
     | 
    
         
            +
                    m.destroy 'pubsub.new.com', 'node_2'
         
     | 
| 
      
 102 
     | 
    
         
            +
                  end
         
     | 
| 
      
 103 
     | 
    
         
            +
                  
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
                
         
     | 
| 
      
 106 
     | 
    
         
            +
              end
         
     | 
| 
      
 107 
     | 
    
         
            +
              
         
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     |