tmud-2.9.0/benchmark/
tmud-2.9.0/cmd/
tmud-2.9.0/cmd/objects/
tmud-2.9.0/cmd/tiny/
tmud-2.9.0/db/
tmud-2.9.0/doc/classes/Acceptor.src/
tmud-2.9.0/doc/classes/BoolExpParser.src/
tmud-2.9.0/doc/classes/CacheStats.src/
tmud-2.9.0/doc/classes/Character.src/
tmud-2.9.0/doc/classes/Client.src/
tmud-2.9.0/doc/classes/ColorFilter.src/
tmud-2.9.0/doc/classes/Command.src/
tmud-2.9.0/doc/classes/Configuration.src/
tmud-2.9.0/doc/classes/Connector.src/
tmud-2.9.0/doc/classes/ConsoleClient.src/
tmud-2.9.0/doc/classes/CursesClient.src/
tmud-2.9.0/doc/classes/DebugFilter.src/
tmud-2.9.0/doc/classes/Dumper.src/
tmud-2.9.0/doc/classes/Engine.src/
tmud-2.9.0/doc/classes/Event.src/
tmud-2.9.0/doc/classes/EventManager.src/
tmud-2.9.0/doc/classes/Farts/AttributeSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/CallSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/CommandSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/CommentSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/EndSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/IfSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/Interpreter.src/
tmud-2.9.0/doc/classes/Farts/Lexer.src/
tmud-2.9.0/doc/classes/Farts/Lib.src/
tmud-2.9.0/doc/classes/Farts/LiteralSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/LocalVarSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/Parser.src/
tmud-2.9.0/doc/classes/Farts/ProgramSyntaxNode.src/
tmud-2.9.0/doc/classes/Farts/SyntaxNode.src/
tmud-2.9.0/doc/classes/Filter.src/
tmud-2.9.0/doc/classes/LineIO.src/
tmud-2.9.0/doc/classes/Loader.src/
tmud-2.9.0/doc/classes/Log.src/
tmud-2.9.0/doc/classes/Module.src/
tmud-2.9.0/doc/classes/ObjCmd.src/
tmud-2.9.0/doc/classes/PacketIO.src/
tmud-2.9.0/doc/classes/ProtocolStack.src/
tmud-2.9.0/doc/classes/Publisher.src/
tmud-2.9.0/doc/classes/Reactor.src/
tmud-2.9.0/doc/classes/Room.src/
tmud-2.9.0/doc/classes/SQLite/
tmud-2.9.0/doc/classes/SQLite/Database.src/
tmud-2.9.0/doc/classes/SQLite3/
tmud-2.9.0/doc/classes/SQLite3/Database.src/
tmud-2.9.0/doc/classes/Script.src/
tmud-2.9.0/doc/classes/SockIO.src/
tmud-2.9.0/doc/classes/String.src/
tmud-2.9.0/doc/classes/TerminalFilter.src/
tmud-2.9.0/doc/classes/TernaryTrie.src/
tmud-2.9.0/doc/classes/TernaryTrie/
tmud-2.9.0/doc/classes/TernaryTrie/TNode.src/
tmud-2.9.0/doc/classes/Timer.src/
tmud-2.9.0/doc/classes/Utility.src/
tmud-2.9.0/doc/classes/XmlStore.src/
tmud-2.9.0/doc/classes/YamlStore.src/
tmud-2.9.0/doc/dot/
tmud-2.9.0/doc/files/cmd/objects/
tmud-2.9.0/doc/files/cmd/tiny/
tmud-2.9.0/doc/files/lib/
tmud-2.9.0/doc/files/lib/engine/
tmud-2.9.0/doc/files/lib/farts/
tmud-2.9.0/doc/files/tclient_rb.src/
tmud-2.9.0/doc/files/tmud_rb.src/
tmud-2.9.0/farts/
tmud-2.9.0/lib/
tmud-2.9.0/lib/core/
tmud-2.9.0/lib/engine/
tmud-2.9.0/lib/farts/
tmud-2.9.0/logs/
# Code Generated by ZenTest v. 2.3.0
#                 classname: asrt / meth =  ratio%
#              TelnetFilter:    9 /   22 =  40.91%

unless defined? $ZENTEST and $ZENTEST
require 'test/unit'
require 'utility/log'
require 'network/protocol/telnetfilter'
require 'flexmock'
require 'ostruct'
require 'strscan'
require 'mocksocket'
end

class TestTelnetFilter < Test::Unit::TestCase
  def setup
    @serv = FlexMock.new
    @serv.mock_handle(:service_type) { :server }
    @serv.mock_handle(:service_io) { :sockio }
    @serv.mock_handle(:service_filters) { [:telnetfilter, :debugfilter] }
    @serv.mock_handle(:service_negotiation) { [:supga, :zmp, :echo] }
    @sock = MockSocket.new("hello world\r\nfoobar")
    @sockio = SockIO.new(@sock, 5)
    @conn = FlexMock.new
    @conn.mock_handle(:sendmsg) { true }
    @conn.mock_handle(:sock) { @sock }
    @conn.mock_handle(:sockio) { @sockio }
    @pstack = FlexMock.new
    @pstack.mock_handle(:conn) { @conn }
    @pstack.mock_handle(:echo_on) { false }
    @pstack.mock_handle(:binary_on) { false }
    @pstack.mock_handle(:urgent_on) { false }
    @filter = TelnetFilter.new(@pstack, @serv)
  end

  def test_desired_eh
    assert_equal(true, @filter.desired?(TelnetCodes::ECHO))
    assert_equal(false, @filter.desired?(TelnetCodes::BINARY))
  end

  def test_echo
    assert(true, @filter.echo("foobar"))
  end

  def test_enabled_eh
    assert_equal(false, @filter.enabled?(TelnetCodes::ECHO, :us))
  end

  def test_filter_in
    assert_equal("Hello World\n",
      @filter.filter_in("Hello "+TelnetCodes::IAC.chr+TelnetCodes::AYT.chr+"World\r\n"))
  end

  def test_filter_out
    assert_equal("Hello World\r\n",
      @filter.filter_out("Hello World\n"))
  end

  def test_init
    assert_equal(true, @filter.init([:server, :filter, :echo, :zmp]))
  end

  def test_init_subneg
    assert(true, @filter.init_subneg)
  end

  def test_send_naws
    assert(true, @filter.send_naws)
  end
end