51 lines
2.1 KiB
Haskell
51 lines
2.1 KiB
Haskell
--
|
|
-- Minio Haskell SDK, (C) 2017 Minio, Inc.
|
|
--
|
|
-- Licensed under the Apache License, Version 2.0 (the "License");
|
|
-- you may not use this file except in compliance with the License.
|
|
-- You may obtain a copy of the License at
|
|
--
|
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
|
--
|
|
-- Unless required by applicable law or agreed to in writing, software
|
|
-- distributed under the License is distributed on an "AS IS" BASIS,
|
|
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
-- See the License for the specific language governing permissions and
|
|
-- limitations under the License.
|
|
--
|
|
|
|
module Network.Minio.API.Test
|
|
( bucketNameValidityTests
|
|
, objectNameValidityTests
|
|
) where
|
|
|
|
import Test.Tasty
|
|
import Test.Tasty.HUnit
|
|
|
|
import Lib.Prelude
|
|
|
|
import Network.Minio.API
|
|
|
|
assertBool' = assertBool "Test failed!"
|
|
|
|
bucketNameValidityTests :: TestTree
|
|
bucketNameValidityTests = testGroup "Bucket Name Validity Tests"
|
|
[ testCase "Too short 1" $ assertBool' $ not $ isValidBucketName ""
|
|
, testCase "Too short 2" $ assertBool' $ not $ isValidBucketName "ab"
|
|
, testCase "Too long 1" $ assertBool' $ not $ isValidBucketName "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
, testCase "Has upper case" $ assertBool' $ not $ isValidBucketName "ABCD"
|
|
, testCase "Has punctuation" $ assertBool' $ not $ isValidBucketName "abc,2"
|
|
, testCase "Has hyphen at end" $ assertBool' $ not $ isValidBucketName "abc-"
|
|
, testCase "Has consecutive dot" $ assertBool' $ not $ isValidBucketName "abck..eedg"
|
|
, testCase "Looks like IP" $ assertBool' $ not $ isValidBucketName "10.0.0.1"
|
|
, testCase "Valid bucket name 1" $ assertBool' $ isValidBucketName "abcd.pqeq.rea"
|
|
, testCase "Valid bucket name 2" $ assertBool' $ isValidBucketName "abcdedgh1d"
|
|
, testCase "Valid bucket name 3" $ assertBool' $ isValidBucketName "abc-de-dg-h1d"
|
|
]
|
|
|
|
objectNameValidityTests :: TestTree
|
|
objectNameValidityTests = testGroup "Object Name Validity Tests"
|
|
[ testCase "Empty name" $ assertBool' $ not $ isValidObjectName ""
|
|
, testCase "Has unicode characters" $ assertBool' $ isValidObjectName "日本国"
|
|
]
|