packages feed

ghc-mod-5.5.0.0: test/ShellParseSpec.hs

module ShellParseSpec where


import GHCMod.Options.ShellParse

import Test.Hspec

spec :: Spec
spec =
  describe "parseCmdLine" $ do
    it "splits arguments" $ do
      parseCmdLine "test command line" `shouldBe` ["test", "command", "line"]
      parseCmdLine "ascii-escape test command line" `shouldBe` ["test", "command", "line"]
    it "honors quoted segments if turned on" $
      parseCmdLine "ascii-escape test command line \STXwith quoted segment\ETX"
        `shouldBe` ["test", "command", "line", "with quoted segment"]
    it "doesn't honor quoted segments if turned off" $
      parseCmdLine "test command line \STXwith quoted segment\ETX"
        `shouldBe` words "test command line \STXwith quoted segment\ETX"
    it "squashes multiple spaces" $ do
      parseCmdLine "test       command"
        `shouldBe` ["test", "command"]
      parseCmdLine "ascii-escape           test       command"
        `shouldBe` ["test", "command"]
    it "ingores leading spaces" $ do
      parseCmdLine "     test       command"
        `shouldBe` ["test", "command"]
      parseCmdLine "   ascii-escape           test       command"
        `shouldBe` ["test", "command"]
    it "parses empty string as no argument" $ do
      parseCmdLine ""
        `shouldBe` [""]
      parseCmdLine "ascii-escape "
        `shouldBe` [""]