NEW ISSUE: When using testforblock on lava, the error message gives the wrong name back as "Lava" does not exist, it should say "flowing_lava" instead.
OLD RESOLVED ISSUE: When using testforblock to detect lava it does sometimes work and sometimes not as seen on the screenshot. When the lava has a different data value (I assume) it is written with a capital "L" in the error, but you can't use "Lava" in the testforblock command as that gives an error too.
EDIT: I just did a test using ID's instead of names (which will be sadly removed soon) and it clearly is an ID issue. The lava with ID 10 is the one not being detected properly, the lava with ID 11 is getting detected.
EDIT: It appears as the ID's are split in "lava" and "flowing_lava", still makes the error message wrong so I'm going to keep this open.
Linked issues
is duplicated by 2
Attachments
Comments

Well that's a very odd and confusing design choice they made there.

Keep in mine that the implementation was done as there weren't ID names, just numerical IDs.
The response
The block at 1 2 3 is Furnace (expected: Command Block)
on the command
/testforblock ~ ~ ~ 1234
makes pretty much sense.
Can't /testforblock Lava source and Lava changes when Placed
When you go /testforblock ~ ~ ~ minecraft:lava it doesn't work, it says that there is lava there and that it expected lava, so its a bug. And when you go /setblock ~ ~ ~ minecraft:lava it places it, but if you do it again it still places it, but if you do this with a normal block, the second time you do the command it should say Cant Place Block. Lava Acts really wierd, and it doesn't work. A note is that I am doing this next to lava blocks, so I run the command in lava that is in a 3x3 Grid. Maybe this doesn't work when next to more lava, IDK i haven't tested it, but It certainly didn't work for me... And when I do a /testforblocks and build the same type of lava in the right configuration and everything it doesn't work. When I remove the lava and do /testforblocks it works. So something wrong with the lava...

Duplicates partwise MC-64416
The blocks in the testfor messages are the (localized) names of the blocks, not the IDs, see my example.