Beispiel #1
0
        forwarder.createConnectionRequestSuffix(function(suffix){
          if (forwarder.remoteInfo.tcp){
            var s = forwarder.remoteInfo.tcp.port
            forwarder.remoteInfo.tcp.port   = 999;
            forwarder.addConnection = function(){
              listenerRes.addTriggered = true;
              connectionCount++
              done();
            }
          } else {
            forwarder.interfaces.dispatch = function(element, faceFlag){
              console.log("dispatch triggered in ")
              connectionCount++

              done();
            }
          }

          var inst = new ndn.Interest(new ndn.Name("addConnectionListener"))
          inst.name.append(suffix)
          var element = inst.wireEncode();

          forwarder.handleInterest(element, 0)
          assert(!listenerRes.CLBlock)
          assert(!listenerRes.CLNonBlock)
          if (forwarder.remoteInfo.tcp){
            forwarder.remoteInfo.tcp.port = s;
          }
        })
Beispiel #2
0
        forwarder.createConnectionRequestSuffix(function(suffix){
          if (forwarder.remoteInfo.tcp){
            var s = forwarder.remoteInfo.tcp.port
            forwarder.remoteInfo.tcp.port   = 888

            forwarder.addConnection = function(){
              assert(false, "should not trigger addConnections after 1");
            }
          } else {
            forwarder.interfaces.dispatch = function(element, faceFlag){
              assert(false, "should not trigger addConnections after 1");
              connectionCount++;
            }
          }
          var inst = new ndn.Interest(new ndn.Name("addConnectionListener"))
          inst.name.append(suffix)
          var element = inst.wireEncode();
          forwarder.setMaxConnections(10);
          forwarder.handleInterest(element, 0)
          assert(listenerRes.CLBlock)
          assert(listenerRes.CLNonBlock)
          if (forwarder.remoteInfo.tcp){
            forwarder.remoteInfo.tcp.port = s;
          }else {

          }

          done();
        })
Beispiel #3
0
 it("should trigger all nonBlocking Listeners on longest prefix", function(){
   var inst = new ndn.Interest(new ndn.Name("crossPlatform/blocking/test/ordering/top"))
   var element = inst.wireEncode();
   forwarder.handleInterest(element, 0);
   console.log("got past handleInterest")
   assert(listenerRes.firstNonBlockingTriggered);
   assert(listenerRes.secondNonBlockingTriggered);
 })
Beispiel #4
0
      it("should unblock if not parseAble or fulfillable as a connection request", function(){
        listenerRes.CLBlock = false;
        listenerRes.CLNonBlock = false;
        var inst = new ndn.Interest(new ndn.Name("addConnectionListener/realrequest"))
        var element = inst.wireEncode();
        forwarder.handleInterest(element, 0)

        assert(listenerRes.CLBlock)
        assert(listenerRes.CLNonBlock)

      })
Beispiel #5
0
 it("should not dispatch to face that data was received on", function(){
   var inst = new ndn.Interest(new ndn.Name("test/forwarding/long"))
   var element = inst.wireEncode();
   forwarder.interfaces.dispatch = function(element, faceFlag){
     assert((faceFlag & (1<<5)), "5th bit should be set")
     assert(!(faceFlag & (1<<4)))
     assert((faceFlag & (1<<3)))
     assert(!(faceFlag & (1<<2)))
   }
   forwarder.handleInterest(element, 4);
 })
Beispiel #6
0
        forwarder.createConnectionRequestSuffix(function(suffix){

          var inst = new ndn.Interest(new ndn.Name("addConnectionListener"))
          inst.name.append(suffix)
          var element = inst.wireEncode();
          forwarder.setMaxConnections(6);
          forwarder.handleInterest(element, 0)
          assert(listenerRes.CLBlock)
          assert(listenerRes.CLNonBlock)
          done();

        })
Beispiel #7
0
        it("should trigger dispatch with same faceID, and a raw data packet", function(){
          forwarder.interfaces.dispatch = function(element, faceFlag){
            assert((faceFlag & (1<<2)))
            var data = new ndn.Data()
            data.wireDecode(element)

            assert(data.name.toUri() === "/cache/hit/test");
          }
          var inst = new ndn.Interest(new ndn.Name("cache/hit/test"))
          var element = inst.wireEncode();
          forwarder.handleInterest(element, 2)
        })
Beispiel #8
0
        it("should dispatch with expected faceFlag", function(){
          var inst = new ndn.Interest(new ndn.Name("test/forwarding/long"))
          var element = inst.wireEncode();
          console.log(element)
          forwarder.interfaces.dispatch = function(element, faceFlag){
            console.log("DISPATCH: " + faceFlag)
            assert((faceFlag & (1<<5)), "5th bit should be set")
            assert((faceFlag & (1<<4)), "4th bit should be set")
            assert((faceFlag & (1<<3)), "3rd bit should be set")
            assert(!(faceFlag & (1<<2)), "2nd bit should NOT be set")
          }
          forwarder.handleInterest(element, 0)

        })
Beispiel #9
0
    describe("Forwarder.handleData", function(){
      var saveDispatch

      var inst = new ndn.Interest(new ndn.Name("forward/test"))

      inst.setInterestLifetimeMilliseconds(1000);
      var element = inst.wireEncode()
      var data = new ndn.Data(new ndn.Name("forward/test/matching"), new ndn.SignedInfo(), "success")
      data.signedInfo.setFields()
      data.sign()
      var dataElement = data.wireEncode();

      before(function(){
        saveDispatch = forwarder.interfaces.dispatch;
        forwarder.pit.insertPitEntry(inst.wireEncode(), inst, 9)
      })

      it("should dispatch to matching pit entries", function(){
        forwarder.interfaces.dispatch = function(element, faceFlag){
          assert((faceFlag & (1<<9)))
        }
        forwarder.handleData(dataElement, 8);
      })

      it("should not dispatch if no pit entries (or duplicate)", function(){
        forwarder.interfaces.dispatch = function(element, faceFlag){
          console.log(faceFlag)
          assert(false)
        }
        forwarder.handleData(dataElement, 8)
      })

      it("should cache", function(){
        forwarder.interfaces.dispatch = function(eelement, faceFlag){
          assert((faceFlag & (1<<10)))
          var d = new ndn.Data()
          d.wireDecode(eelement);
          assert(d.name.toUri() === "/forward/test/matching")
        }
        forwarder.handleInterest(element, 10)

      })
      after(function(){
        forwarder.interfaces.dispatch = saveDispatch;

      })
    })
Beispiel #10
0
 before(function(){
   saveDispatch = forwarder.interfaces.dispatch;
   forwarder.pit.insertPitEntry(inst.wireEncode(), inst, 9)
 })