小编Joh*_*ohn的帖子

是否可以通过RSpec/Capybara测试元素的顺序?

我正在使用RSpec/Capybara作为我的测试套件.我有一些动态附加<li>到j 的结尾的javascript <ul>.我想写一个请求规范来确保这种情况发生.

我尝试使用has_cssCapybara方法和高级CSS选择器来测试<li>元素的排序,但Capybara不支持+CSS选择器.

例:

page.should have_css('li:contains("ITEM #1")')
pseuo_add_new_li
page.should have_css('li:contains("ITEM #1")+li:contains("ITEM #2")')
Run Code Online (Sandbox Code Playgroud)

有没有人知道测试订购的另一种方法?

rspec capybara ruby-on-rails-3 ruby-on-rails-3.1

39
推荐指数
5
解决办法
1万
查看次数

ASP .NET按钮事件处理程序不会在第一次单击时触发,而是在PostBack后的第二次单击时触发

背景:我正在定制现有的ASP .NET/C#应用程序.它有自己的小"框架"和开发人员在扩展/定制其功能时遵循的约定.我目前正在扩展它的一些管理功能,框架提供了一个合同来强制执行GetAdministrationInterface()返回的方法System.Web.UI.Control.在Page_Load()托管GUI界面的页面的方法期间调用此方法.

问题:我的GUI中有三个按钮,每个按钮都分配了一个事件处理程序.我的管理GUI加载完全正常,但单击任何按钮不会做我期望他们做的事情.但是,当我第二次单击它们时,按钮会起作用.

我在每个事件处理程序方法的开头放置了断点并逐步执行了我的代码.在第一次单击时,没有触发任何事件处理程序.在第二次点击时,他们开除了.

有任何想法吗?

按钮定义示例(内GetAdministrationInterface)

public override Control GetAdministrationInterface()
{
    // more code...

    Button btn = new Button();
    btn.Text = "Click Me!";
    btn.Click += new EventHandler(Btn_Click);

    // more code...
}
Run Code Online (Sandbox Code Playgroud)

事件处理程序方法定义的示例

void Btn_Click(object sender, EventArgs e)
{
    // Do Something
}
Run Code Online (Sandbox Code Playgroud)

Page_Load 调用的方法 GetAdministrationInterface

protected void Page_Load(object sender, System.EventArgs e)
{
    if (!Page.IsAsync)
    {
        List<AdministrationInterface> interfaces = <DATABASE CALL>;
        foreach(AdministrationInteface ai in interfaces)
        {
            placeholderDiv.Controls.Add(ai.GetAdministrationInterface());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net event-handling

36
推荐指数
3
解决办法
7万
查看次数

为什么必须调用URLConnection#getInputStream才能写出URLConnection#getOutputStream?

我试着写出URLConnection#getOutputStream,然而,在我打电话之前,实际上没有数据被发送URLConnection#getInputStream.即使我设置URLConnnection#doInput为false,它仍然不会发送.有人知道为什么吗?API文档中没有任何内容可以描述这一点.

URLConnection上的Java API文档:http://download.oracle.com/javase/6/docs/api/java/net/URLConnection.html

Java的读取和编写URLConnection的教程:http://download.oracle.com/javase/tutorial/networking/urls/readingWriting.html

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnectionTest {

    private static final String TEST_URL = "http://localhost:3000/test/hitme";

    public static void main(String[] args) throws IOException  {

        URLConnection urlCon = null;
        URL url = null;
        OutputStreamWriter osw = null;

        try {
            url = new URL(TEST_URL);
            urlCon = url.openConnection();
            urlCon.setDoOutput(true);
            urlCon.setRequestProperty("Content-Type", "text/plain");            

            ////////////////////////////////////////
            // SETTING THIS TO FALSE DOES NOTHING //
            ////////////////////////////////////////
            // urlCon.setDoInput(false);

            osw …
Run Code Online (Sandbox Code Playgroud)

java httpurlconnection

32
推荐指数
1
解决办法
3万
查看次数

是否可以为关联获取ActiveRecord :: Relation对象

  1. 关联方法,例如那些定义has_manybelongs_to利用的方法ActiveRecord::Relation

  2. 如果是这样,是否可以获取ActiveRecord::Relation正在使用的对象.

我们都知道,当使用查询接口创建查询时,Rails 3 在后台大量使用ActiveRecord::Relation对象和Arel::Relation对象.每当我们使用,等查询界面的方法,一个是返回的对象.但是,在调用模型的关联方法时似乎不是这种情况.而是立即执行查询,并返回关联模型的实例或实例数组.selectjoinsActiveRecord::Relation

考虑以下模型:

post.rb

class Post < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

user.rb

class user < ActiveRecord::Base
  has_many :posts
end
Run Code Online (Sandbox Code Playgroud)

例:

u = User.first
u.posts
Run Code Online (Sandbox Code Playgroud)

调用u.posts返回一组帖子,而不是一个实例ActiveRecord::Relation.我不知道是否有可能得到的ActiveRecord::Relation正在使用的联想,如果它被用在所有的,也许使用Arel::Table

我想要的理由ActiveRecord::Relation应该是显而易见的:这是因为我想链接现有的关联并操纵查询以适应不同的目的.

activerecord associations arel ruby-on-rails-3

20
推荐指数
1
解决办法
2万
查看次数

如何在Rails中使用Rack :: Proxy将请求代理到另一个应用程序的特定路径

我发现这篇关于如何作为单独的代理应用使用的博客文章Rack::Proxy.本文解释了他如何使用端口上的应用程序Rack::Proxy代理请求和http://localhost:3000端口上的应用程序3001请求.我想做同样的事情,但我不想创建一个单独的代理应用程序.相反,我希望我的主Rails应用程序将请求代理到另一个应用程序.http://localhost:3000/api3002/blog

博客文章:http://livsey.org/blog/2012/02/23/using-rack-proxy-to-serve-multiple-rails-apps-from-the-same-domain-and-port/

proxy rack routes reverse-proxy ruby-on-rails-3.1

17
推荐指数
3
解决办法
2万
查看次数

在开发模式下,Rails3不会在lib中重新加载代码

情况:

  1. lib/foo/bar.rb用一个定义如下的简单方法编写代码:

    module Foo
      class Bar
        def test
          "FooBar"
        end
      end
    end
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在我的帮手中FooBarHelper,我有:

    require `lib/foo/bar`
    module FooBarHelper
      def test_foo_bar
        fb = Foo::Bar.new
        fb.test
      end
    end
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在我看来,我称之为辅助方法如下:

    <%= test_foo_bar =>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在我config/environments/development.rb,我将目录添加到我的config.autoload_paths:

    config.autoload_paths += ["#{config.root}/lib/foo"]
    
    Run Code Online (Sandbox Code Playgroud)

问题:

Foo::Bar.test例如,当我更改to 的返回值时,"MODIFIED FOOBAR"原始返回值"FooBar"仍然显示在视图上而不是新值.

由于我处于开发模式,代码不应该在每个请求上重新加载代码吗?

有人能告诉我我错过了什么吗?

谢谢!

ruby-on-rails autoload ruby-on-rails-3

14
推荐指数
2
解决办法
7493
查看次数

我应该如何为SAML WebSSO配置文件实现HTTP POST协议绑定?

我已经使用HTTP POST协议绑定在Web SSO的SAML配置文件之后实现了我的服务提供者和识别提供者.但是,<AuthnStatement>如果来自服务提供商的HTTP POST与身份提供商上的会话无关,身份提供商将如何提供,我感到有点困惑.

有人可以告诉我怎么能做到这一点?

我可以使用的另一种方法是HTTP重定向绑定,但这需要用户代理干预(即浏览器),通常使用User-Agent作为pass-thru中介来促进请求 - 响应消息交换.因此,我宁愿使用HTTP POST,因为消息交换发生在服务器端,因此用户看不到屏幕上发生任何事情.

但是,对于我如何能够将会话与请求联系起来,使用HTTP重定向更有意义.由于通过用户代理促进了HTTP重定向,因此对IdP的请求将具有会话(如果先前已经过身份验证).我没有得到的是如何发送<AuthnRequest>HTTP重定向. 由JST回答

所以我有点困惑,很想听听其他人在做什么.以下是我的问题:

  1. 使用HTTP POST协议绑定IsPassive选项<AuthnRequest>,如何将服务提供者的请求绑定到身份提供者的会话?换句话说,如果POST来自服务提供商(在技术上是匿名会话),身份提供商如何知道谁在提出请求?
  2. 使用HTTP重定向协议绑定,<AuthnRequest>如果我使用HTTP重定向,如何发送到身份提供程序? 由JST回答

UPDATE

如果我在上面的解释中不清楚,请注意混淆.我正在实现IdP和SP(通过插件).IdP是一个现有的应用程序,我希望SP(第三方系统)用于身份验证(即Web SSO).我正在开发一个简单的PoC.SP实际上是第三方Spring应用程序,我正在开发一个插件来执行SAML操作.

我应该提到我正在尝试使用该IsPassive选项,这意味着用户代理在消息交换期间不起作用.它只是启动SAML派对的催化剂.对?考虑到这一点,假设用户在步骤1中是匿名的,那么SP向IdP发送了什么以允许IdP确定用户是否已经过身份验证?由于IsPassive,HTTP POST不会通过User-Agent发送


UPDATE

问题1修订:如何IdP进行解析委托时,AuthnRequset与发送IsPassive的选项?

直接从SAML 2.0配置文件,第15页,第417到419行:

在步骤4中,通过在此配置文件范围之外的某些方式提供的标识来标识主体.

我真正想要的是解释如何实施some means.

redirect http-post saml post-redirect-get

13
推荐指数
1
解决办法
3万
查看次数

除了一个元素之外,如何删除DIV中的所有内容?

我有以下HTML:

<div class="item">
    <img src="http://mintywhite.com/images/wg/0904/05rssfeedicons/rss-feed-icons11.jpg"/>
    TEXT NODE
    <span class="some_class">What the funk?</span>
    <form>What the monkey</form>
</div>
Run Code Online (Sandbox Code Playgroud)

我想删除div.item除图像之外的所有内容.我尝试使用这段代码,但文本节点仍然在div.

$('.item').contents().not('img').remove();
Run Code Online (Sandbox Code Playgroud)

有什么建议?

这是我可以摆弄的JSFiddle:http://jsfiddle.net/pSmDW/

jquery

12
推荐指数
2
解决办法
1万
查看次数

在不删除测试数据库的情况下运行Rails测试

只是想知道是否有办法在不丢弃数据库的情况下运行Rails测试.我目前只执行单元测试,并使用以下rake命令执行此操作:rake test:units.

我在这里先向您的帮助表示感谢!

以防这是相关的:

  • Rails 3
  • Ruby 1.8.7(MRI)
  • Oracle 11g数据库
    • ActiveRecord的-oracle_enhanced适配器

testing unit-testing ruby-on-rails oracle11g ruby-on-rails-3

8
推荐指数
3
解决办法
3231
查看次数

Tomcat过滤器对请求输入流产生负面影响(输入流为空)

我在我的应用程序中添加了一个过滤器,它只是记录了有关请求的某些内容.我的一些servlet从中读取ServletRequest#getInputStream.自添加此过滤器以来,那些读取的servlet ServletRequest#getInputStream不再用作输入流是空的.只需从我的注释中禁用过滤器即可web.xml解决问题.

为什么会发生这种情况,是否有办法使用过滤器而不会弄乱ServletRequest#getInputStream

过滤器实际上是Tomcat RequestDumperFilter包含在其示例Web应用程序中的一个.我只会包含doFilter方法,因为这是重要的部分.如果你想看到整件事,我已经把它放在了PasteBin上.

/**
 * Time the processing that is performed by all subsequent filters in the
 * current filter stack, including the ultimately invoked servlet.
 *
 * @param request The servlet request we are processing
 * @param result The servlet response we are creating
 * @param chain The filter chain we are processing
 *
 * @exception IOException if an input/output error occurs
 * @exception ServletException …
Run Code Online (Sandbox Code Playgroud)

java inputstream tomcat6 servlet-filters

7
推荐指数
1
解决办法
3229
查看次数