5import qualified Data.HashMap.Strict as H
9import qualified Data.Text as T
10import Data.Text.Encoding
11import qualified Data.Vector as V
12import Network.HTTP.Types.URI
13import Test.Framework (defaultMain, testGroup)
14import Test.Framework.Providers.HUnit (testCase)
15import Test.HUnit hiding (Test)
21 [ testCase "Can be represented in a JSON string value" jsonString
22 , testCase "Can be represented in a URI fragment identifier" uriFragment
29 [ ("foo" , Array $ V.fromList ["bar", "baz"])
41jsonString :: Assertion
44 (\(a,expected) -> assertEqual ("Tried to resolve " <> show a) (Right expected)
45 $ jsonPointer a >>= resolvePointer specExample)
47 , ("/foo" , Array $ V.fromList ["bar", "baz"])
48 , ("/foo/0", String "bar")
50 , ("/a~1b" , Number 1)
54 , ("/i\\j" , Number 5)
55 , ("/k\"l" , Number 6)
57 , ("/m~0n" , Number 8)
60uriFragment :: Assertion
63 (\(a,expected) -> assertEqual ("Tried to resolve " <> show a) (Right expected)
64 $ jsonPointer (decodeFragment a) >>= resolvePointer specExample)
66 , ("#/foo" , Array $ V.fromList ["bar", "baz"])
67 , ("#/foo/0", String "bar")
69 , ("#/a~1b" , Number 1)
70 , ("#/c%25d", Number 2)
71 , ("#/e%5Ef", Number 3)
72 , ("#/g%7Ch", Number 4)
73 , ("#/i%5Cj", Number 5)
74 , ("#/k%22l", Number 6)
75 , ("#/%20" , Number 7)
76 , ("#/m~0n" , Number 8)
79 decodeFragment :: Text -> Text
80 decodeFragment = T.drop 1 . decodeUtf8 . urlDecode True . encodeUtf8
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list