Weird fluid if-then-else rendering

Hello,

I have a weird case of fluid conditioning. I’ll explain it with an example. Take a look in the following fluid code, if you run it you will get “This triggers since all the above fail” as output:

<f:if condition="{false}">
    <f:then>
        Condition is false, so this should not trigger
    </f:then>
    <f:else if="{false}">
        This is also false, should not trigger
    </f:else>
    <f:else>
        This triggers since all the above fail
    </f:else>
</f:if>

Now, take the same markup and remove the last f:else like so, the output now becomes “This is also false, should not trigger. But it does”, even though the condition fails:

<f:if condition="{false}">
    <f:then>
        Condition is false, so this should not trigger
    </f:then>
    <f:else if="{false}">
        This is also false, should not trigger. But it does.
    </f:else>
</f:if>

This is a bug, right ?

I will say yes - looking at the IfViewHelper it seems to not take the if argument into account

I would file it as a bug in the Fluid package