Tests that the security details for an origin are updated if its security state changes.

Sidebar Origins --------------------------------
Group: Main origin
Group: Secure origins
<SPAN is=url-text >
    <SPAN class=url-scheme-unknown >
https
    </SPAN>
    <SPAN class=url-scheme-separator >
://
    </SPAN>
    <SPAN >
foo.test
    </SPAN>
</SPAN>
<SPAN class=url-scheme-unknown >
https
</SPAN>
<SPAN class=url-scheme-separator >
://
</SPAN>
<SPAN >
foo.test
</SPAN>
Group: Unknown / canceled
<SPAN is=url-text >
    <SPAN class=url-scheme-unknown >
https
    </SPAN>
    <SPAN class=url-scheme-separator >
://
    </SPAN>
    <SPAN >
bar.test
    </SPAN>
</SPAN>
<SPAN class=url-scheme-unknown >
https
</SPAN>
<SPAN class=url-scheme-separator >
://
</SPAN>
<SPAN >
bar.test
</SPAN>
Origin view ------------------------------------
<DIV class=widget vbox security-origin-view insertion-point-main >
    <STYLE type=text/css >
    </STYLE>
    <STYLE type=text/css >
    </STYLE>
    <DIV class=title-section >
        <DIV class=title-section-header >
Origin
        </DIV>
        <DIV class=origin-display >
            <SPAN class=security-property security-property-secure >
            </SPAN>
            <SPAN is=url-text >
                <SPAN class=url-scheme-secure >
https
                </SPAN>
                <SPAN class=url-scheme-separator >
://
                </SPAN>
                <SPAN >
foo.test
                </SPAN>
            </SPAN>
        </DIV>
        <DIV class=view-network-button >
            <BUTTON is=text-button type=button class=origin-button >
View requests in Network Panel
                <#document-fragment >
                    <STYLE type=text/css >
                    </STYLE>
                    <STYLE type=text/css >
                    </STYLE>
                    <STYLE type=text/css >
                    </STYLE>
                    <CONTENT >
                    </CONTENT>
                </#document-fragment>
            </BUTTON>
        </DIV>
    </DIV>
    <DIV class=origin-view-section >
        <DIV class=origin-view-section-title >
Connection
        </DIV>
        <TABLE class=details-table >
            <DIV class=details-table-row >
                <DIV >
Protocol
                </DIV>
                <DIV >
TLS 1.2
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
Key exchange
                </DIV>
                <DIV >
Key_Exchange
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
Cipher
                </DIV>
                <DIV >
Cypher with Mac
                </DIV>
            </DIV>
        </TABLE>
    </DIV>
    <DIV class=origin-view-section >
        <DIV class=origin-view-section-title >
Certificate
        </DIV>
        <TABLE class=details-table >
            <DIV class=details-table-row >
                <DIV >
Subject
                </DIV>
                <DIV >
foo.test
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
SAN
                </DIV>
                <DIV >
                    <DIV >
                        <SPAN class=san-entry >
foo.test
                        </SPAN>
                        <SPAN class=san-entry >
*.test
                        </SPAN>
                    </DIV>
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
Valid from
                </DIV>
                <DIV >
Mon, 20 Mar 2017 08:53:20 GMT
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
Valid until
                </DIV>
                <DIV >
Wed, 18 May 2033 03:33:20 GMT
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
Issuer
                </DIV>
                <DIV >
Super CA
                </DIV>
            </DIV>
            <DIV class=details-table-row >
                <DIV >
                </DIV>
                <DIV >
                    <BUTTON is=text-button type=button class=origin-button >
Open full certificate details
                        <#document-fragment >
                            <STYLE type=text/css >
                            </STYLE>
                            <STYLE type=text/css >
                            </STYLE>
                            <STYLE type=text/css >
                            </STYLE>
                            <CONTENT >
                            </CONTENT>
                        </#document-fragment>
                    </BUTTON>
                </DIV>
            </DIV>
        </TABLE>
    </DIV>
</DIV>

