Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/spec/lib/rex/proto/x11/extensions.rb
Views: 16006
# -*- coding: binary -*-12require 'spec_helper'34RSpec.describe Rex::Proto::X11::Extension do5subject do6mod = ::Msf::Exploit.new7mod.extend described_class89mod.send(:initialize)10mod11end1213let(:query_extension) do14"\x62\x00\x05\x00\f\x00\x00\x00BIG-REQUESTS"15end1617let(:query_extension2) do18"\x62\x00\x05\x00\t\x00\x00\x00XKEYBOARD\x00\x00\x00"19end2021let(:query_extension_resp) do22"\x01\x00\x01\x00\x00\x00\x00\x00\x01\x86\x00\x00\x00\x00\x00\x00" \23"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"24end2526let(:enable_134) do27"\x86\x00\x01\x00"28end2930let(:enable_resp) do31"\x01\x00\x02\x00\x00\x00\x00\x00\xff\xff\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"32end3334describe 'X11QueryExtensionRequest' do35context '#read long length' do36it do37request = Rex::Proto::X11::Extension::X11QueryExtensionRequest.read(query_extension)38expect(request.extension).to eq('BIG-REQUESTS')39end40end41context '#initialize long length' do42it do43request = Rex::Proto::X11::Extension::X11QueryExtensionRequest.new(extension: 'BIG-REQUESTS')44expect(request.to_binary_s).to eq(query_extension)45end46end47context '#read short length' do48it do49request = Rex::Proto::X11::Extension::X11QueryExtensionRequest.read(query_extension2)50expect(request.extension).to eq('XKEYBOARD')51end52end53context '#initialize short length' do54it do55request = Rex::Proto::X11::Extension::X11QueryExtensionRequest.new(extension: 'XKEYBOARD')56expect(request.to_binary_s).to eq(query_extension2)57end58end59end6061describe 'X11QueryExtensionResponse' do62context '#read' do63it do64response = Rex::Proto::X11::Extension::X11QueryExtensionResponse.read(query_extension_resp)65expect(response.major_opcode).to eq(134)66expect(response.present).to eq(1)67end68end69end7071describe 'X11ExtensionToggleRequest' do72context '#read' do73it do74request = Rex::Proto::X11::Extension::X11ExtensionToggleRequest.read(enable_134)75expect(request.opcode).to eq(134)76expect(request.wanted_major).to eq(0)77expect(request.wanted_major).to eq(0)78expect(request.request_length).to eq(1)79end80end81context '#initialize' do82it do83request = Rex::Proto::X11::Extension::X11ExtensionToggleRequest.new(opcode: 134)84expect(request.to_binary_s).to eq(enable_134)85end86end87end8889describe 'X11ExtensionToggleReply' do90context '#read' do91it do92request = Rex::Proto::X11::Extension::X11ExtensionToggleReply.read(enable_resp)93expect(request.reply_sequence_number).to eq(2)94expect(request.maximum_request_length).to eq(4194303)95end96end97end98end99100101