# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you 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. # from qpid.tests import Test from qpid.mimetype import lex, parse, ParseError, EOF, WSPACE from parser import ParserBase class MimeTypeTests(ParserBase, Test): EXCLUDE = (WSPACE, EOF) def do_lex(self, st): return lex(st) def do_parse(self, st): return parse(st) def valid(self, addr, type=None, subtype=None, parameters=None): ParserBase.valid(self, addr, (type, subtype, parameters)) def testTypeOnly(self): self.invalid("type", "expecting SLASH, got EOF line:1,4:type") def testTypeSubtype(self): self.valid("type/subtype", "type", "subtype", []) def testTypeSubtypeParam(self): self.valid("type/subtype ; name=value", "type", "subtype", [("name", "value")]) def testTypeSubtypeParamComment(self): self.valid("type/subtype ; name(This is a comment.)=value", "type", "subtype", [("name", "value")]) def testMultipleParams(self): self.valid("type/subtype ; name1=value1 ; name2=value2", "type", "subtype", [("name1", "value1"), ("name2", "value2")]) def testCaseInsensitivity(self): self.valid("Type/Subtype", "type", "subtype", [])