TEST_F(MediaControlsTest, Reset) { mediaControls().mediaElement().setBooleanAttribute(HTMLNames::controlsAttr, true); Element* panel = getElementByShadowPseudoId(mediaControls(), "-webkit-media-controls-panel"); ASSERT_NE(nullptr, panel); ASSERT_TRUE(isElementVisible(*panel)); mediaControls().reset(); ASSERT_TRUE(isElementVisible(*panel)); }
TEST_F(MediaControlsTest, CastButtonRequiresRoute) { ensureLayout(); mediaControls().mediaElement().setBooleanAttribute(HTMLNames::controlsAttr, true); Element* castButton = getElementByShadowPseudoId( mediaControls(), "-internal-media-controls-cast-button"); ASSERT_NE(nullptr, castButton); ASSERT_FALSE(isElementVisible(*castButton)); simulateRouteAvailabe(); ASSERT_TRUE(isElementVisible(*castButton)); }
static void drawElementLabels(drawContext *ctx, GEntity *e, std::vector<T*> &elements, int forceColor=0, unsigned int color=0) { unsigned col = forceColor ? color : getColorByEntity(e); glColor4ubv((GLubyte *) & col); int labelStep = CTX::instance()->mesh.labelSampling; if(labelStep <= 0) labelStep = 1; for(unsigned int i = 0; i < elements.size(); i++){ MElement *ele = elements[i]; if(!isElementVisible(ele)) continue; if(i % labelStep == 0) { SPoint3 pc = ele->barycenter(); char str[256]; if(CTX::instance()->mesh.labelType == 4) sprintf(str, "(%g,%g,%g)", pc.x(), pc.y(), pc.z()); else if(CTX::instance()->mesh.labelType == 3) sprintf(str, "%d", ele->getPartition()); else if(CTX::instance()->mesh.labelType == 2){ int np = e->physicals.size(); int p = np ? e->physicals[np - 1] : 0; sprintf(str, "%d", p); } else if(CTX::instance()->mesh.labelType == 1) sprintf(str, "%d", e->tag()); else sprintf(str, "%d", ele->getNum()); glRasterPos3d(pc.x(), pc.y(), pc.z()); ctx->drawString(str); } } }
TEST_F(MediaControlsTest, CastOverlayDisableRemotePlaybackAttr) { Element* castOverlayButton = getElementByShadowPseudoId( mediaControls(), "-internal-media-controls-overlay-cast-button"); ASSERT_NE(nullptr, castOverlayButton); ASSERT_FALSE(isElementVisible(*castOverlayButton)); simulateRouteAvailabe(); ASSERT_TRUE(isElementVisible(*castOverlayButton)); mediaControls().mediaElement().setBooleanAttribute( HTMLNames::disableremoteplaybackAttr, true); ASSERT_FALSE(isElementVisible(*castOverlayButton)); mediaControls().mediaElement().setBooleanAttribute( HTMLNames::disableremoteplaybackAttr, false); ASSERT_TRUE(isElementVisible(*castOverlayButton)); }
TEST_F(MediaControlsTest, CastOverlayDefault) { Element* castOverlayButton = getElementByShadowPseudoId( mediaControls(), "-internal-media-controls-overlay-cast-button"); ASSERT_NE(nullptr, castOverlayButton); simulateRouteAvailabe(); ASSERT_TRUE(isElementVisible(*castOverlayButton)); }
TEST_F(MediaControlsTest, KeepControlsVisibleIfOverflowListVisible) { Element* overflowList = getElementByShadowPseudoId( mediaControls(), "-internal-media-controls-overflow-menu-list"); ASSERT_NE(nullptr, overflowList); Element* panel = getElementByShadowPseudoId(mediaControls(), "-webkit-media-controls-panel"); ASSERT_NE(nullptr, panel); mediaControls().mediaElement().setSrc("http://example.com"); mediaControls().mediaElement().play(); testing::runPendingTasks(); mediaControls().show(); mediaControls().toggleOverflowMenu(); EXPECT_TRUE(isElementVisible(*overflowList)); simulateHideMediaControlsTimerFired(); EXPECT_TRUE(isElementVisible(*overflowList)); EXPECT_TRUE(isElementVisible(*panel)); }
static void drawTangents(drawContext *ctx, std::vector<T*> &elements) { glColor4ubv((GLubyte *) & CTX::instance()->color.mesh.tangents); for(unsigned int i = 0; i < elements.size(); i++){ MElement *ele = elements[i]; if(!isElementVisible(ele)) continue; SVector3 t = ele->getEdge(0).tangent(); for(int j = 0; j < 3; j++) t[j] *= CTX::instance()->mesh.tangents * ctx->pixel_equiv_x / ctx->s[j]; SPoint3 pc = ele->barycenter(); ctx->drawVector(CTX::instance()->vectorType, 0, pc.x(), pc.y(), pc.z(), t[0], t[1], t[2], CTX::instance()->mesh.light); } }
static void drawVoronoiDual(std::vector<T*> &elements) { glColor4ubv((GLubyte *) & CTX::instance()->color.fg); glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0x0F0F); gl2psEnable(GL2PS_LINE_STIPPLE); glBegin(GL_LINES); for(unsigned int i = 0; i < elements.size(); i++){ T *ele = elements[i]; if(!isElementVisible(ele)) continue; SPoint3 pc = ele->circumcenter(); if(ele->getDim() == 2){ for(int j = 0; j < ele->getNumEdges(); j++){ MEdge e = ele->getEdge(j); SVector3 p2p1(e.getVertex(1)->x() - e.getVertex(0)->x(), e.getVertex(1)->y() - e.getVertex(0)->y(), e.getVertex(1)->z() - e.getVertex(0)->z()); SVector3 pcp1(pc.x() - e.getVertex(0)->x(), pc.y() - e.getVertex(0)->y(), pc.z() - e.getVertex(0)->z()); double alpha = dot(pcp1,p2p1) / dot(p2p1,p2p1); SPoint3 p((1 - alpha)*e.getVertex(0)->x() + alpha * e.getVertex(1)->x(), (1 - alpha)*e.getVertex(0)->y() + alpha * e.getVertex(1)->y(), (1 - alpha)*e.getVertex(0)->z() + alpha * e.getVertex(1)->z()); glVertex3d(pc.x(), pc.y(), pc.z()); glVertex3d(p.x(), p.y(), p.z()); } } else if(ele->getDim() == 3){ for(int j = 0; j < ele->getNumFaces(); j++){ MFace f = ele->getFace(j); SPoint3 p = f.barycenter(); glVertex3d(pc.x(), pc.y(), pc.z()); glVertex3d(p.x(), p.y(), p.z()); for(int k = 0; k < f.getNumVertices(); k++){ MEdge e(f.getVertex(k), (k == f.getNumVertices() - 1) ? f.getVertex(0) : f.getVertex(k + 1)); SPoint3 pe = e.barycenter(); glVertex3d(p.x(), p.y(), p.z()); glVertex3d(pe.x(), pe.y(), pe.z()); } } } } glEnd(); glDisable(GL_LINE_STIPPLE); gl2psDisable(GL2PS_LINE_STIPPLE); }
static void drawVerticesPerElement(drawContext *ctx, GEntity *e, std::vector<T*> &elements) { for(unsigned int i = 0; i < elements.size(); i++){ MElement *ele = elements[i]; for(int j = 0; j < ele->getNumVertices(); j++){ MVertex *v = ele->getVertex(j); // FIXME isElementVisible() can be slow: we should also use a // vertex array for drawing vertices... if(isElementVisible(ele) && v->getVisibility()){ if(CTX::instance()->mesh.points) { if(CTX::instance()->mesh.colorCarousel == 0 || CTX::instance()->mesh.volumesFaces || CTX::instance()->mesh.surfacesFaces){ // by element type if(v->getPolynomialOrder() > 1) glColor4ubv((GLubyte *) & CTX::instance()->color.mesh.vertexSup); else glColor4ubv((GLubyte *) & CTX::instance()->color.mesh.vertex); } else{ unsigned int col = getColorByEntity(e); glColor4ubv((GLubyte *) & col); } if(CTX::instance()->mesh.pointType) ctx->drawSphere(CTX::instance()->mesh.pointSize, v->x(), v->y(), v->z(), CTX::instance()->mesh.light); else{ glBegin(GL_POINTS); glVertex3d(v->x(), v->y(), v->z()); glEnd(); } } if(CTX::instance()->mesh.pointsNum) drawVertexLabel(ctx, v->onWhat() ? v->onWhat() : e, v); } } } }