| /* |
| * 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. |
| */ |
| |
| package org.apache.jmeter.functions |
| |
| import org.apache.jmeter.engine.util.CompoundVariable |
| import org.apache.jmeter.samplers.SampleResult |
| import org.apache.jmeter.threads.JMeterContextService |
| import org.apache.jmeter.threads.JMeterVariables |
| |
| import spock.lang.IgnoreIf |
| import spock.lang.Specification |
| import spock.lang.Unroll |
| |
| @Unroll |
| class ChangeCaseSpec extends Specification { |
| |
| // See https://github.com/apache/jmeter/issues/5723 |
| @IgnoreIf({ 'i'.toUpperCase() != 'I' || 'I'.toLowerCase() != 'i' }) |
| def "convert '#input' using mode #mode to '#output'"() { |
| given: |
| def changeCase = new ChangeCase() |
| def jMCtx = JMeterContextService.getContext() |
| def result = new SampleResult() |
| result.setResponseData("dummy data", null) |
| jMCtx.setVariables(new JMeterVariables()) |
| jMCtx.setPreviousResult(result) |
| when: |
| changeCase.setParameters([new CompoundVariable(input), new CompoundVariable(mode)]) |
| then: |
| output == changeCase.execute(result, null) |
| where: |
| input | mode | output |
| "simple" | "lower" | "simple" |
| "simple" | "upper" | "SIMPLE" |
| "simple" | "capitalize" | "Simple" |
| "simple" | "" | "SIMPLE" |
| " with space " | "lower" | " with space " |
| " with space " | "upper" | " WITH SPACE " |
| " with space " | "capitalize" | " with space " |
| "#_with-signs." | "lower" | "#_with-signs." |
| "#_with-signs." | "upper" | "#_WITH-SIGNS." |
| "#_with-signs." | "capitalize" | "#_with-signs." |
| "m4u file" | "lower" | "m4u file" |
| "m4u file" | "upper" | "M4U FILE" |
| "m4u file" | "capitalize" | "M4u file" |
| "WITH Ümläuts" | "lower" | "with ümläuts" |
| "WITH Ümläuts" | "upper" | "WITH ÜMLÄUTS" |
| "WITH Ümläuts" | "capitalize" | "WITH Ümläuts" |
| "+ - special space" | "lower" | "+ - special space" |
| "+ - special space" | "upper" | "+ - SPECIAL SPACE" |
| "+ - special space" | "capitalize" | "+ - special space" |
| " " | "lower" | " " |
| " " | "upper" | " " |
| " " | "capitalize" | " " |
| } |
| |
| } |