File: plsql_spec.rb

package info (click to toggle)
ruby-rouge 4.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,844 kB
  • sloc: ruby: 38,489; sed: 2,071; perl: 152; makefile: 8
file content (49 lines) | stat: -rw-r--r-- 1,340 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- coding: utf-8 -*- #
# frozen_string_literal: true

describe Rouge::Lexers::PLSQL do
  let(:subject) { Rouge::Lexers::PLSQL.new }

  describe 'guessing' do
    include Support::Guessing

    it 'guesses by filename' do
      assert_guess :filename => 'foo.pls'
      assert_guess :filename => 'foo.typ'
      assert_guess :filename => 'foo.tps'
      assert_guess :filename => 'foo.tpb'
      assert_guess :filename => 'foo.pks'
      assert_guess :filename => 'foo.pkb'
      assert_guess :filename => 'foo.pkg'
      assert_guess :filename => 'foo.trg'
    end

    it 'guesses by mimetype' do
      assert_guess :mimetype => 'text/x-plsql'
    end
  end

  describe 'lexing' do
    include Support::Lexing
    describe 'numerics' do
      it 'distinguishes Float from Integer' do
        assert_tokens_equal "2.3 + 5",
          ['Literal.Number.Float', '2.3'],
          ['Text', ' '],
          ['Operator', '+'],
          ['Text', ' '],
          ['Literal.Number.Integer', '5']
      end

      it 'identifies Floats with exponent correctly' do
        assert_tokens_equal "12.3e4",
          ['Literal.Number.Float', '12.3e4']
        assert_tokens_equal "5.67e-9",
          ['Literal.Number.Float', '5.67e-9']
        assert_tokens_equal "20.4e+8",
          ['Literal.Number.Float', '20.4e+8']
      end
    end

  end
end